@Override public Object jmeClone() { ChaseCamera cc = new ChaseCamera(cam, inputManager); cc.target = target; cc.setMaxDistance(getMaxDistance()); cc.setMinDistance(getMinDistance()); return cc; }
/** * Constructs the chase camera, and registers inputs * if you use this constructor you have to attach the cam later to a spatial * doing spatial.addControl(chaseCamera); * @param cam the application camera * @param inputManager the inputManager of the application to register inputs */ public ChaseCamera(Camera cam, InputManager inputManager) { this(cam); registerWithInput(inputManager); }
/** * Sets the spacial for the camera control, should only be used internally * @param spatial */ public void setSpatial(Spatial spatial) { target = spatial; if (spatial == null) { return; } computePosition(); prevPos = new Vector3f(target.getWorldTranslation()); cam.setLocation(pos); }
public void onAnalog(String name, float value, float tpf) { if (name.equals(CameraInput.CHASECAM_MOVELEFT)) { rotateCamera(-value); } else if (name.equals(CameraInput.CHASECAM_MOVERIGHT)) { rotateCamera(value); } else if (name.equals(CameraInput.CHASECAM_UP)) { vRotateCamera(value); } else if (name.equals(CameraInput.CHASECAM_DOWN)) { vRotateCamera(-value); } else if (name.equals(CameraInput.CHASECAM_ZOOMIN)) { zoomCamera(-value); if (zoomin == false) { distanceLerpFactor = 0; } zoomin = true; } else if (name.equals(CameraInput.CHASECAM_ZOOMOUT)) { zoomCamera(+value); if (zoomin == true) { distanceLerpFactor = 0; } zoomin = false; } }
chaser = new ChaseCamera(cam, teapot); chaser.registerWithInput(inputManager); chaser.setSmoothMotion(true); chaser.setMaxDistance(50); chaser.setDefaultDistance(50); initInputs();
stateManager.attach(debugState); ChaseCamera chaser = new ChaseCamera(cam, modelNode, inputManager); chaser.setDragToRotate(true); chaser.setMinVerticalRotation(-FastMath.HALF_PI); chaser.setMaxDistance(1000); chaser.setSmoothMotion(true); chaser.setRotationSensitivity(10); chaser.setZoomSensitivity(5); flyCam.setEnabled(false);
ChaseCamera chaseCam = new ChaseCamera(cam, tank, inputManager); chaseCam.setSmoothMotion(true); chaseCam.setMaxDistance(100000); chaseCam.setMinVerticalRotation(-FastMath.PI / 2); viewPort.setBackgroundColor(ColorRGBA.DarkGray);
ChaseCamera chaseCam = new ChaseCamera(cam, inputManager); model.addControl(chaseCam); chaseCam.setLookAtOffset(b.getCenter()); chaseCam.setDefaultDistance(5); chaseCam.setMinVerticalRotation(-FastMath.HALF_PI + 0.01f); chaseCam.setZoomSensitivity(0.5f);
ChaseCamera chaser = new ChaseCamera(cam, teapot); chaser.registerWithInput(inputManager); initInputs();
private void setupChaseCamera() { flyCam.setEnabled(false); chaseCam = new ChaseCamera(cam, model, inputManager); }
chaseCam = new ChaseCamera(cam, teaGeom, inputManager); chaseCam.setSmoothMotion(true);
ChaseCamera chaseCam = new ChaseCamera(cam, inputManager); chaseCam.setLookAtOffset(new Vector3f(0,0.5f,-1.0f)); buggy.addControl(chaseCam); rootNode.attachChild(buggy);
/** * update the camera control, should only be used internally * @param tpf */ public void update(float tpf) { updateCamera(tpf); }
public void onAnalog(String name, float value, float tpf) { if (name.equals(CameraInput.CHASECAM_MOVELEFT)) { rotateCamera(-value); } else if (name.equals(CameraInput.CHASECAM_MOVERIGHT)) { rotateCamera(value); } else if (name.equals(CameraInput.CHASECAM_UP)) { vRotateCamera(value); } else if (name.equals(CameraInput.CHASECAM_DOWN)) { vRotateCamera(-value); } else if (name.equals(CameraInput.CHASECAM_ZOOMIN)) { zoomCamera(-value); if (zoomin == false) { distanceLerpFactor = 0; } zoomin = true; } else if (name.equals(CameraInput.CHASECAM_ZOOMOUT)) { zoomCamera(+value); if (zoomin == true) { distanceLerpFactor = 0; } zoomin = false; } }
private void buildPlayer() { spaceCraft = assetManager.loadModel("Models/HoverTank/Tank2.mesh.xml"); CollisionShape colShape = CollisionShapeFactory.createDynamicMeshShape(spaceCraft); spaceCraft.setShadowMode(ShadowMode.CastAndReceive); spaceCraft.setLocalTranslation(new Vector3f(-140, 50, -23)); spaceCraft.setLocalRotation(new Quaternion(new float[]{0, 0.01f, 0})); hoverControl = new PhysicsHoverControl(colShape, 500); spaceCraft.addControl(hoverControl); rootNode.attachChild(spaceCraft); getPhysicsSpace().add(hoverControl); hoverControl.setCollisionGroup(PhysicsCollisionObject.COLLISION_GROUP_02); ChaseCamera chaseCam = new ChaseCamera(cam, inputManager); spaceCraft.addControl(chaseCam); flyCam.setEnabled(false); }
/** * update the camera control, should only be used internally * @param tpf */ public void update(float tpf) { updateCamera(tpf); }
/** * clone this camera for a spatial * @param spatial * @return */ public Control cloneForSpatial(Spatial spatial) { ChaseCamera cc = new ChaseCamera(cam, spatial, inputManager); cc.setMaxDistance(getMaxDistance()); cc.setMinDistance(getMinDistance()); return cc; }
public void onAnalog(String name, float value, float tpf) { if (name.equals(ChaseCamMoveLeft)) { rotateCamera(-value); } else if (name.equals(ChaseCamMoveRight)) { rotateCamera(value); } else if (name.equals(ChaseCamUp)) { vRotateCamera(value); } else if (name.equals(ChaseCamDown)) { vRotateCamera(-value); } else if (name.equals(ChaseCamZoomIn)) { zoomCamera(-value); if (zoomin == false) { distanceLerpFactor = 0; } zoomin = true; } else if (name.equals(ChaseCamZoomOut)) { zoomCamera(+value); if (zoomin == true) { distanceLerpFactor = 0; } zoomin = false; } }
/** * Constructs the chase camera, and registers inputs * @param cam the application camera * @param target the spatial to follow * @param inputManager the inputManager of the application to register inputs */ public ChaseCamera(Camera cam, final Spatial target, InputManager inputManager) { this(cam, target); registerWithInput(inputManager); }
@Override public void cloneFields( Cloner cloner, Object original ) { this.target = cloner.clone(target); computePosition(); prevPos = new Vector3f(target.getWorldTranslation()); cam.setLocation(pos); }