public void loop(int dfps) { float delta = 60f / Frame.getFps(); map.update(dfps, delta); // if (dfps == 0) // { // System.out.println(Frame.getFps()); // } if (MouseInput.isGrabbed()) { float dWheel = MouseInput.getDWheel(); if (dWheel != 0) { dWheel /= 112; if (player.cameraAttached() && player.getPerspective() == Actor.THIRD) { offsetY += -1 / 5f * dWheel; offsetZ += -5 / 5f * dWheel; if (offsetY > 0 && offsetZ > 0) { camera.move(0, -1 / 5f * dWheel, -5 / 5f * dWheel); } else { offsetY -= -1 / 5f * dWheel; offsetZ -= -5 / 5f * dWheel; } } brightness += dWheel * 2; brightness = brightness < 0 ? 0 : brightness; GL.setAmbientLighti(brightness, brightness, brightness); GL.setClearColori(brightness, brightness, brightness, 255); } float dx = MouseInput.getDX(); float dy = MouseInput.getDY(); player.setSprinting(KeyboardInput.isKeyDown(KeyboardInput.KEY_LEFT_SHIFT)); if (KeyboardInput.isKeyDown(KeyboardInput.KEY_W)) { player.move(0, 0, -0.1f * delta); } if (KeyboardInput.isKeyDown(KeyboardInput.KEY_A)) { player.move(-0.1f * delta, 0, 0); } if (KeyboardInput.isKeyDown(KeyboardInput.KEY_S)) { player.move(0, 0, 0.1f * delta); } if (KeyboardInput.isKeyDown(KeyboardInput.KEY_D)) { player.move(0.1f * delta, 0, 0); } if (KeyboardInput.isKeyDown(KeyboardInput.KEY_SPACE)) { player.jump(); } player.yaw(dx * 0.10f); player.pitch(-dy * 0.10f); if (KeyboardInput.next(KeyboardInput.KEY_C)) { if (player.getPerspective() == Player.THIRD) { player.setPerspective(Player.FIRST); } else if (player.getPerspective() == Player.FIRST) { player.setPerspective(Player.THIRD); } } if (KeyboardInput.next(KeyboardInput.KEY_L)) { map.render = map.render == GL.POINTS ? GL.TRIANGLES : GL.POINTS; } if (KeyboardInput.next(KeyboardInput.KEY_O)) { GL.setWireFrameMode(!GL.isWireFrame(), GL.isWireFrame(), true); // GL.setShowColors(!GL.isShowingColors()); } if (KeyboardInput.next(KeyboardInput.KEY_R)) { if (player.getActiveGun() != null) { Gun gun = player.getActiveGun(); if (gun.getIdleAmmo() > 0) { gun.reload(); } } } if (MouseInput.isButtonDown(MouseInput.LEFT_MOUSE_BUTTON)) { if (player.getActiveGun() != null) { if (releasedDelay > player.getActiveGun().getShotDelay() && (player.getActiveGun().getShotDelay() != -1 || released)) { player.useActiveWeapon(); released = false; releasedDelay = 0; } else { releasedDelay++; } } } else { released = true; } } if (MouseInput.isButtonDown(MouseInput.LEFT_MOUSE_BUTTON)) { MouseInput.setGrabbed(true); released = false; } if (KeyboardInput.isKeyDown(KeyboardInput.KEY_ESCAPE)) { MouseInput.setGrabbed(false); } // if (KeyboardInput.isKeyDown(KeyboardInput.KEY_R)) // { // if (player.cameraAttached()) // { // player.detachCamera(); // } // else // { // player.attachCamera(camera); // } // } if (KeyboardInput.next(KeyboardInput.KEY_F11)) { Frame.setFullscreen(!Frame.isFullscreen()); } // if (KeyboardInput.isKeyDown(KeyboardInput.KEY_K)) // { // player.deta // } // System.out.println(player.getYaw() + ", " + player.getPitch() + ", " + player.getRoll()); player.update(dfps, delta); }