Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
- package mygame.controls_states;
- import com.jme3.app.Application;
- import com.jme3.app.SimpleApplication;
- import com.jme3.app.state.AbstractAppState;
- import com.jme3.app.state.AppStateManager;
- import com.jme3.asset.AssetManager;
- import com.jme3.bullet.BulletAppState;
- import com.jme3.bullet.control.RigidBodyControl;
- import com.jme3.material.Material;
- import com.jme3.math.ColorRGBA;
- import com.jme3.math.Vector3f;
- import com.jme3.renderer.Camera;
- import com.jme3.scene.Geometry;
- import com.jme3.scene.Node;
- import com.jme3.scene.Spatial;
- import com.jme3.scene.shape.Box;
- /**
- *
- */
- public class GameState extends AbstractAppState{
- static Geometry vehicle;
- static RigidBodyControl vehicleControler;
- BulletAppState appState = new BulletAppState();
- Node rootNode;
- SimpleApplication app;
- AssetManager assetManager;
- Camera camera;
- @Override
- public void initialize(AppStateManager stateManager, Application app) {
- super.initialize(stateManager, app);
- this.assetManager = app.getAssetManager();
- this.app = (SimpleApplication) app;
- this.rootNode = this.app.getRootNode();
- this.camera = app.getCamera();
- this.app.getFlyByCamera().setMoveSpeed(100);
- createTerrain();
- createVehicle();
- }
- private void createTerrain() {
- Spatial terrain = assetManager.loadModel("Textures/GameScene.j3o");
- terrain.setLocalTranslation(0, -100, 0);
- rootNode.attachChild(terrain);
- appState = new BulletAppState();
- app.getStateManager().attach(appState);
- RigidBodyControl terrainPhysics = new RigidBodyControl(0);
- terrain.addControl(terrainPhysics);
- // appState.getPhysicsSpace().setGravity(new Vector3f(0, -0.25f, 0));
- appState.getPhysicsSpace().add(terrainPhysics);
- }
- private void createVehicle() {
- Box box = new Box(2, 2, 2);
- Material material = new Material(assetManager,
- "Common/MatDefs/Misc/Unshaded.j3md");
- vehicle = new Geometry("Vechicle", box);
- material.setColor("Color", ColorRGBA.Blue);
- // material.getAdditionalRenderState().setWireframe(true);
- vehicleControler = new RigidBodyControl(2);
- vehicle.addControl(vehicleControler);
- appState.getPhysicsSpace().add(vehicleControler);
- appState.getPhysicsSpace().setGravity(new Vector3f(0, -9.8f, 0));
- vehicleControler.setFriction(0);
- // vehicleControler.setKinematic(true);
- vehicle.setMaterial(material);
- vehicle.setLocalTranslation(0, -90, 0);
- vehicle.setCullHint(Spatial.CullHint.Never);
- // this.app.getFlyByCamera().
- rootNode.attachChild(vehicle);
- VehicleControl vehicleControl = new VehicleControl(this.app.getInputManager());
- vehicle.addControl(vehicleControl);
- }
- public static RigidBodyControl getVehicleController() {
- return vehicleControler;
- }
- @Override
- public void update(float tpf) {
- // getVehicleController().applyCentralForce(new Vector3f(0, 20, 0));
- }
- }
Add Comment
Please, Sign In to add comment