|
|
@ -53,6 +53,25 @@ import com.jme3.renderer.Camera; |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
public class FlyByCamera implements AnalogListener, ActionListener { |
|
|
|
public class FlyByCamera implements AnalogListener, ActionListener { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private static String[] mappings = new String[]{ |
|
|
|
|
|
|
|
"FLYCAM_Left", |
|
|
|
|
|
|
|
"FLYCAM_Right", |
|
|
|
|
|
|
|
"FLYCAM_Up", |
|
|
|
|
|
|
|
"FLYCAM_Down", |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
"FLYCAM_StrafeLeft", |
|
|
|
|
|
|
|
"FLYCAM_StrafeRight", |
|
|
|
|
|
|
|
"FLYCAM_Forward", |
|
|
|
|
|
|
|
"FLYCAM_Backward", |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
"FLYCAM_ZoomIn", |
|
|
|
|
|
|
|
"FLYCAM_ZoomOut", |
|
|
|
|
|
|
|
"FLYCAM_RotateDrag", |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
"FLYCAM_Rise", |
|
|
|
|
|
|
|
"FLYCAM_Lower" |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
protected Camera cam; |
|
|
|
protected Camera cam; |
|
|
|
protected Vector3f initialUpVec; |
|
|
|
protected Vector3f initialUpVec; |
|
|
|
protected float rotationSpeed = 1f; |
|
|
|
protected float rotationSpeed = 1f; |
|
|
@ -153,25 +172,6 @@ public class FlyByCamera implements AnalogListener, ActionListener { |
|
|
|
public void registerWithInput(InputManager inputManager){ |
|
|
|
public void registerWithInput(InputManager inputManager){ |
|
|
|
this.inputManager = inputManager; |
|
|
|
this.inputManager = inputManager; |
|
|
|
|
|
|
|
|
|
|
|
String[] mappings = new String[]{ |
|
|
|
|
|
|
|
"FLYCAM_Left", |
|
|
|
|
|
|
|
"FLYCAM_Right", |
|
|
|
|
|
|
|
"FLYCAM_Up", |
|
|
|
|
|
|
|
"FLYCAM_Down", |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
"FLYCAM_StrafeLeft", |
|
|
|
|
|
|
|
"FLYCAM_StrafeRight", |
|
|
|
|
|
|
|
"FLYCAM_Forward", |
|
|
|
|
|
|
|
"FLYCAM_Backward", |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
"FLYCAM_ZoomIn", |
|
|
|
|
|
|
|
"FLYCAM_ZoomOut", |
|
|
|
|
|
|
|
"FLYCAM_RotateDrag", |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
"FLYCAM_Rise", |
|
|
|
|
|
|
|
"FLYCAM_Lower" |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// both mouse and button - rotation of cam
|
|
|
|
// both mouse and button - rotation of cam
|
|
|
|
inputManager.addMapping("FLYCAM_Left", new MouseAxisTrigger(MouseInput.AXIS_X, true), |
|
|
|
inputManager.addMapping("FLYCAM_Left", new MouseAxisTrigger(MouseInput.AXIS_X, true), |
|
|
|
new KeyTrigger(KeyInput.KEY_LEFT)); |
|
|
|
new KeyTrigger(KeyInput.KEY_LEFT)); |
|
|
@ -211,6 +211,28 @@ public class FlyByCamera implements AnalogListener, ActionListener { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
|
|
* Registers the FlyByCamera to receive input events from the provided |
|
|
|
|
|
|
|
* Dispatcher. |
|
|
|
|
|
|
|
* @param inputManager |
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
public void unregisterInput(){ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (String s : mappings) { |
|
|
|
|
|
|
|
inputManager.deleteMapping( s ); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inputManager.removeListener(this); |
|
|
|
|
|
|
|
inputManager.setCursorVisible(!dragToRotate); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Joystick[] joysticks = inputManager.getJoysticks(); |
|
|
|
|
|
|
|
if (joysticks != null && joysticks.length > 0){ |
|
|
|
|
|
|
|
Joystick joystick = joysticks[0]; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// No way to unassing axis
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
protected void rotateCamera(float value, Vector3f axis){ |
|
|
|
protected void rotateCamera(float value, Vector3f axis){ |
|
|
|
if (dragToRotate){ |
|
|
|
if (dragToRotate){ |
|
|
|
if (canRotate){ |
|
|
|
if (canRotate){ |
|
|
|