示例#1
0
 public void move(Terrain terrain) {
   checkInputs();
   super.increaseRotation(0, currentTurnSpeed * DisplayManager.getFrameTimeSeconds(), 0);
   float distance = currentSpeed * DisplayManager.getFrameTimeSeconds();
   float dx = (float) (distance * Math.sin(Math.toRadians(super.getRotY())));
   float dz = (float) (distance * Math.cos(Math.toRadians(super.getRotY())));
   super.increasePosition(dx, 0, dz);
   upwardsSpeed += GRAVITY * DisplayManager.getFrameTimeSeconds();
   super.increasePosition(0, upwardsSpeed * DisplayManager.getFrameTimeSeconds(), 0);
   float terrainHeight = terrain.getHeightOfTerrain(getPosition().x, getPosition().z);
   // float terrainHeight = 0;
   if (super.getPosition().y < terrainHeight) {
     upwardsSpeed = 0;
     isInAir = false;
     super.getPosition().y = terrainHeight;
   }
 }