update method

void update(
  1. double delta
)

Updates the controls. Usually called in the animation loop.

Implementation

void update(double delta){
  if(enabled == false) return;

  if(heightSpeed) {
    double y = MathUtils.clamp<double>(object.position.y, heightMin, heightMax );
    final heightDelta = y - heightMin;
    autoSpeedFactor = delta * (heightDelta * heightCoef);
  }
  else {
    autoSpeedFactor = 0.0;
  }

  double actualMoveSpeed = delta * movementSpeed;

  if(moveForward ){
    velocity.add( getForwardVector().scale(actualMoveSpeed));
  }
  if(moveBackward){
    velocity.add( getForwardVector().scale(-actualMoveSpeed));
  }
  if(moveLeft){
    object.rotation.y += movementSpeed*math.pi/180;
  }
  if(moveRight){
    object.rotation.y -= movementSpeed*math.pi/180;
  }

  object.position.setFrom(velocity);

  cameraAngle = (1-0.01)*cameraAngle+0.01*object.rotation.y;
  camera.position.setFromSphericalCoords( 15, 1, cameraAngle );
  camera.position.setFrom(object.position).add( offset );
  camera.lookAt( object.position );
}