Пример #1
0
  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);
  }