Fixed initialization issues in ChaseCameraAppState

experimental
Nehon 11 years ago
parent 24a971a186
commit d5c96d84ee
  1. 23
      jme3-core/src/main/java/com/jme3/app/ChaseCameraAppState.java

@ -78,8 +78,8 @@ public class ChaseCameraAppState extends AbstractAppState implements ActionListe
protected float minVerticalRotation = 0f; protected float minVerticalRotation = 0f;
protected float horizontalRotation = 0f; protected float horizontalRotation = 0f;
//protected float distanceLerpFactor = 0; //protected float distanceLerpFactor = 0;
protected Vector3f upVector; protected Vector3f upVector = new Vector3f();
protected Vector3f leftVector; protected Vector3f leftVector = new Vector3f();
protected Trigger[] zoomOutTrigger = {new MouseAxisTrigger(MouseInput.AXIS_WHEEL, true)}; protected Trigger[] zoomOutTrigger = {new MouseAxisTrigger(MouseInput.AXIS_WHEEL, true)};
protected Trigger[] zoomInTrigger = {new MouseAxisTrigger(MouseInput.AXIS_WHEEL, false)}; protected Trigger[] zoomInTrigger = {new MouseAxisTrigger(MouseInput.AXIS_WHEEL, false)};
protected Trigger[] toggleRotateTrigger = {new MouseButtonTrigger(MouseInput.BUTTON_LEFT), new MouseButtonTrigger(MouseInput.BUTTON_RIGHT)}; protected Trigger[] toggleRotateTrigger = {new MouseButtonTrigger(MouseInput.BUTTON_LEFT), new MouseButtonTrigger(MouseInput.BUTTON_RIGHT)};
@ -89,6 +89,7 @@ public class ChaseCameraAppState extends AbstractAppState implements ActionListe
// protected float rotation = 0; // protected float rotation = 0;
// protected float targetRotation = rotation; // protected float targetRotation = rotation;
public ChaseCameraAppState() { public ChaseCameraAppState() {
camNode = new CameraNode("ChaseCameraNode", new CameraControl());
} }
@Override @Override
@ -96,7 +97,7 @@ public class ChaseCameraAppState extends AbstractAppState implements ActionListe
super.initialize(stateManager, app); super.initialize(stateManager, app);
this.inputManager = app.getInputManager(); this.inputManager = app.getInputManager();
target = new Node("ChaseCamTarget"); target = new Node("ChaseCamTarget");
camNode = new CameraNode("ChaseCameraNode", app.getCamera()); camNode.setCamera(app.getCamera());
camNode.setControlDir(CameraControl.ControlDirection.SpatialToCamera); camNode.setControlDir(CameraControl.ControlDirection.SpatialToCamera);
target.attachChild(camNode); target.attachChild(camNode);
camNode.setLocalTranslation(0, 0, distance); camNode.setLocalTranslation(0, 0, distance);
@ -275,7 +276,9 @@ public class ChaseCameraAppState extends AbstractAppState implements ActionListe
*/ */
public void setMaxDistance(float maxDistance) { public void setMaxDistance(float maxDistance) {
this.maxDistance = maxDistance; this.maxDistance = maxDistance;
zoomCamera(distance); if(initialized){
zoomCamera(distance);
}
} }
/** /**
@ -292,7 +295,9 @@ public class ChaseCameraAppState extends AbstractAppState implements ActionListe
*/ */
public void setMinDistance(float minDistance) { public void setMinDistance(float minDistance) {
this.minDistance = minDistance; this.minDistance = minDistance;
zoomCamera(distance); if(initialized){
zoomCamera(distance);
}
} }
/** /**
@ -311,7 +316,9 @@ public class ChaseCameraAppState extends AbstractAppState implements ActionListe
*/ */
public void setMaxVerticalRotation(float maxVerticalRotation) { public void setMaxVerticalRotation(float maxVerticalRotation) {
this.maxVerticalRotation = maxVerticalRotation; this.maxVerticalRotation = maxVerticalRotation;
rotateCamera(); if(initialized){
rotateCamera();
}
} }
/** /**
@ -331,7 +338,9 @@ public class ChaseCameraAppState extends AbstractAppState implements ActionListe
*/ */
public void setMinVerticalRotation(float minHeight) { public void setMinVerticalRotation(float minHeight) {
this.minVerticalRotation = minHeight; this.minVerticalRotation = minHeight;
rotateCamera(); if(initialized){
rotateCamera();
}
} }
/** /**

Loading…
Cancel
Save