mirror of
				https://github.com/Dejvino/roadtrip
				synced 2025-10-31 15:55:20 +00:00 
			
		
		
		
	Refactor: enabled vehicles again.
This commit is contained in:
		
							parent
							
								
									a2af1e02bb
								
							
						
					
					
						commit
						3c104a3d38
					
				| @ -36,6 +36,7 @@ import com.jme3.terrain.geomipmap.TerrainQuad; | |||||||
| import roadtrip.model.VehicleInstance; | import roadtrip.model.VehicleInstance; | ||||||
| import roadtrip.view.GameWorldView; | import roadtrip.view.GameWorldView; | ||||||
| import roadtrip.view.VehicleNode; | import roadtrip.view.VehicleNode; | ||||||
|  | import roadtrip.view.model.GameWorldState; | ||||||
| import roadtrip.view.model.Player; | import roadtrip.view.model.Player; | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
| @ -53,6 +54,7 @@ public class RoadTrip extends SimpleApplication implements ActionListener { | |||||||
| 
 | 
 | ||||||
|     private BulletAppState bulletAppState; |     private BulletAppState bulletAppState; | ||||||
| 
 | 
 | ||||||
|  |     private GameWorldState gameWorldState; | ||||||
|     private GameWorldView gameWorldView; |     private GameWorldView gameWorldView; | ||||||
| 
 | 
 | ||||||
|     private ChaseCamera chaseCam; |     private ChaseCamera chaseCam; | ||||||
| @ -87,8 +89,9 @@ public class RoadTrip extends SimpleApplication implements ActionListener { | |||||||
|         dl.setColor(ColorRGBA.LightGray); |         dl.setColor(ColorRGBA.LightGray); | ||||||
|         dl.setDirection(new Vector3f(1, -1, 1)); |         dl.setDirection(new Vector3f(1, -1, 1)); | ||||||
|         rootNode.addLight(dl); |         rootNode.addLight(dl); | ||||||
|          | 
 | ||||||
|         gameWorldView = GameWorldView.create(assetManager, cam, rootNode); |         gameWorldState = new GameWorldState(); | ||||||
|  |         gameWorldView = GameWorldView.create(gameWorldState, assetManager, cam, rootNode); | ||||||
|         gameWorldView.terrain.terrainGrid.addListener(new TerrainGridListener() { |         gameWorldView.terrain.terrainGrid.addListener(new TerrainGridListener() { | ||||||
| 
 | 
 | ||||||
|             @Override |             @Override | ||||||
| @ -114,11 +117,11 @@ public class RoadTrip extends SimpleApplication implements ActionListener { | |||||||
| 
 | 
 | ||||||
|         }); |         }); | ||||||
| 
 | 
 | ||||||
|         /*addCar(); |  | ||||||
|         addCar(); |         addCar(); | ||||||
|         addCar(); |         addCar(); | ||||||
|         addCar(); |         addCar(); | ||||||
|         addCar();*/ |         addCar(); | ||||||
|  |         addCar(); | ||||||
|         addPerson(); |         addPerson(); | ||||||
|         addPerson(); |         addPerson(); | ||||||
|         addPerson(); |         addPerson(); | ||||||
| @ -157,10 +160,10 @@ public class RoadTrip extends SimpleApplication implements ActionListener { | |||||||
|         inputManager.addListener(this, "Esc"); |         inputManager.addListener(this, "Esc"); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     /*private void addCar() |     private void addCar() | ||||||
|     { |     { | ||||||
|         Node vehicleModel = new Node("VehicleModel"); |         Node vehicleModel = new Node("VehicleModel"); | ||||||
|         VehicleInstance vehicleInstance = VehicleInstance.createVehicle(vehicles.size() % VehicleInstance.getVehicleTypesCount()); |         VehicleInstance vehicleInstance = VehicleInstance.createVehicle(gameWorldState.vehicles.size() % VehicleInstance.getVehicleTypesCount()); | ||||||
|         vehicleInstance.brakeForce = vehicleInstance.accelerationForce; |         vehicleInstance.brakeForce = vehicleInstance.accelerationForce; | ||||||
|          |          | ||||||
|         Material mat = new Material(getAssetManager(), "Common/MatDefs/Misc/Unshaded.j3md"); |         Material mat = new Material(getAssetManager(), "Common/MatDefs/Misc/Unshaded.j3md"); | ||||||
| @ -335,9 +338,9 @@ public class RoadTrip extends SimpleApplication implements ActionListener { | |||||||
|         getPhysicsSpace().add(vehicleControl); |         getPhysicsSpace().add(vehicleControl); | ||||||
|         vehicleControl.setPhysicsLocation(new Vector3f(10f + (float)Math.random() * 40f, 28f, 12f + (float)Math.random() * 40f)); |         vehicleControl.setPhysicsLocation(new Vector3f(10f + (float)Math.random() * 40f, 28f, 12f + (float)Math.random() * 40f)); | ||||||
|          |          | ||||||
|         vehicles.add(vehicle); |         gameWorldState.vehicles.add(vehicle); | ||||||
|         rootNode.attachChild(vehicle); |         rootNode.attachChild(vehicle); | ||||||
|     }*/ |     } | ||||||
| 
 | 
 | ||||||
|     private Node addPerson() { |     private Node addPerson() { | ||||||
|         Spatial personModel = assetManager.loadModel("Models/person.j3o"); |         Spatial personModel = assetManager.loadModel("Models/person.j3o"); | ||||||
| @ -427,10 +430,8 @@ public class RoadTrip extends SimpleApplication implements ActionListener { | |||||||
|     public void simpleUpdate(float tpf) { |     public void simpleUpdate(float tpf) { | ||||||
|         Vector3f playerLocation = player.node.getWorldTranslation(); |         Vector3f playerLocation = player.node.getWorldTranslation(); | ||||||
|         Vector3f newLocation = new Vector3f(playerLocation).add(new Vector3f(-1f, 1.5f, 2.4f).mult(20f)); |         Vector3f newLocation = new Vector3f(playerLocation).add(new Vector3f(-1f, 1.5f, 2.4f).mult(20f)); | ||||||
|         /*cam.setLocation(new Vector3f(cam.getLocation()).interpolate(newLocation, Math.min(tpf, 1f))); | 
 | ||||||
|         cam.lookAt(playerLocation, Vector3f.UNIT_Y);*/ |         for (VehicleNode vehicle : gameWorldState.vehicles) { | ||||||
|          |  | ||||||
|         /*for (VehicleNode vehicle : gameWorldState.vehicles) { |  | ||||||
|             vehicle.vehicleInstance.accelerationSmooth = (vehicle.vehicleInstance.accelerationSmooth + vehicle.vehicleInstance.accelerationValue * (tpf * 10f)) / (1 + tpf * 10f); |             vehicle.vehicleInstance.accelerationSmooth = (vehicle.vehicleInstance.accelerationSmooth + vehicle.vehicleInstance.accelerationValue * (tpf * 10f)) / (1 + tpf * 10f); | ||||||
|             vehicle.engineAudio.setVelocity(new Vector3f(0, 0, 0)); |             vehicle.engineAudio.setVelocity(new Vector3f(0, 0, 0)); | ||||||
|             vehicle.engineAudio.updateGeometricState(); |             vehicle.engineAudio.updateGeometricState(); | ||||||
| @ -466,7 +467,7 @@ public class RoadTrip extends SimpleApplication implements ActionListener { | |||||||
|             // TODO: pitch |             // TODO: pitch | ||||||
|             //wheelsAudio.setPitch(Math.max(0.5f, Math.min(wheelRot * 4f, 2.0f))); |             //wheelsAudio.setPitch(Math.max(0.5f, Math.min(wheelRot * 4f, 2.0f))); | ||||||
|             vehicle.wheelSlipAudio.setVolume(Math.max(0.0001f, Math.min(wheelSlip, 1.0f)) - 0.0001f); |             vehicle.wheelSlipAudio.setVolume(Math.max(0.0001f, Math.min(wheelSlip, 1.0f)) - 0.0001f); | ||||||
|         }*/ |         } | ||||||
|          |          | ||||||
|         listener.setLocation(cam.getLocation()); |         listener.setLocation(cam.getLocation()); | ||||||
|         listener.setRotation(cam.getRotation()); |         listener.setRotation(cam.getRotation()); | ||||||
| @ -527,7 +528,7 @@ public class RoadTrip extends SimpleApplication implements ActionListener { | |||||||
|                 if (value) { |                 if (value) { | ||||||
|                     System.out.println("Reset - to car"); |                     System.out.println("Reset - to car"); | ||||||
|                     Vector3f playerPos = player.node.getWorldTranslation(); |                     Vector3f playerPos = player.node.getWorldTranslation(); | ||||||
|                     /*for (VehicleNode vehicle : vehicles) { |                     for (VehicleNode vehicle : gameWorldState.vehicles) { | ||||||
|                         Vector3f vehiclePos = vehicle.getWorldTranslation(); |                         Vector3f vehiclePos = vehicle.getWorldTranslation(); | ||||||
|                         float dist = playerPos.distance(vehiclePos); |                         float dist = playerPos.distance(vehiclePos); | ||||||
|                         System.out.println(" .. dist: " + dist); |                         System.out.println(" .. dist: " + dist); | ||||||
| @ -544,11 +545,11 @@ public class RoadTrip extends SimpleApplication implements ActionListener { | |||||||
|                             player.walkDir = new Vector3f(); |                             player.walkDir = new Vector3f(); | ||||||
|                             break; |                             break; | ||||||
|                         } |                         } | ||||||
|                     }*/ |                     } | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|         } else { |         } else { | ||||||
|             /*VehicleInstance playerVehicle = player.vehicleNode.vehicleInstance; |             VehicleInstance playerVehicle = player.vehicleNode.vehicleInstance; | ||||||
|             VehicleControl playerVehicleControl = player.vehicleNode.vehicleControl; |             VehicleControl playerVehicleControl = player.vehicleNode.vehicleControl; | ||||||
|             int playerCarType = playerVehicle.carType; |             int playerCarType = playerVehicle.carType; | ||||||
|             float steerMax = 0.5f; |             float steerMax = 0.5f; | ||||||
| @ -617,7 +618,7 @@ public class RoadTrip extends SimpleApplication implements ActionListener { | |||||||
|                     player.walkDir = new Vector3f(); |                     player.walkDir = new Vector3f(); | ||||||
|                 } else { |                 } else { | ||||||
|                 } |                 } | ||||||
|             }*/ |             } | ||||||
|         } |         } | ||||||
|         if (binding.equals("Esc")) { |         if (binding.equals("Esc")) { | ||||||
|             stop(); |             stop(); | ||||||
|  | |||||||
| @ -8,20 +8,20 @@ package roadtrip.model; | |||||||
|  */ |  */ | ||||||
| public class VehicleInstance | public class VehicleInstance | ||||||
| { | { | ||||||
|     final static int WEAK = 1; |     public static final int WEAK = 1; | ||||||
|     final static int TRUCK = 2; |     public static final int TRUCK = 2; | ||||||
|     final static int SPORT = 3; |     public static final int SPORT = 3; | ||||||
| 
 | 
 | ||||||
|     static int getVehicleTypesCount() { |     public static int getVehicleTypesCount() { | ||||||
|         return SPORT; |         return SPORT; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     int carType; |     public int carType; | ||||||
|     float accelerationForce = 200.0f; |     public float accelerationForce = 200.0f; | ||||||
|     float brakeForce = 100.0f; |     public float brakeForce = 100.0f; | ||||||
|     float steeringValue = 0; |     public float steeringValue = 0; | ||||||
|     float accelerationValue = 0; |     public float accelerationValue = 0; | ||||||
|     float accelerationSmooth = 0; |     public float accelerationSmooth = 0; | ||||||
| 
 | 
 | ||||||
|     VehicleInstance(int carType, float accelerationForce, float brakeForce) |     VehicleInstance(int carType, float accelerationForce, float brakeForce) | ||||||
|     { |     { | ||||||
| @ -54,7 +54,7 @@ public class VehicleInstance | |||||||
|         } |         } | ||||||
|     } |     } | ||||||
|      |      | ||||||
|     static VehicleInstance createVehicle(int i) { |     public static VehicleInstance createVehicle(int i) { | ||||||
|         switch (i + 1) { |         switch (i + 1) { | ||||||
|             case WEAK: return new WeakVehicle(); |             case WEAK: return new WeakVehicle(); | ||||||
|             case TRUCK: return new TruckVehicle(); |             case TRUCK: return new TruckVehicle(); | ||||||
|  | |||||||
| @ -27,7 +27,7 @@ import roadtrip.view.model.GameWorldState; | |||||||
|  */ |  */ | ||||||
| public class GameWorldView { | public class GameWorldView { | ||||||
| 
 | 
 | ||||||
|     private GameWorldState state = new GameWorldState(); |     private GameWorldState state; | ||||||
| 
 | 
 | ||||||
|     private AssetManager assetManager; |     private AssetManager assetManager; | ||||||
|     private Camera camera; |     private Camera camera; | ||||||
| @ -35,11 +35,15 @@ public class GameWorldView { | |||||||
| 
 | 
 | ||||||
|     public TerrainView terrain = new TerrainView(new TerrainDataProvider()); |     public TerrainView terrain = new TerrainView(new TerrainDataProvider()); | ||||||
| 
 | 
 | ||||||
|     public static GameWorldView create(AssetManager assetManager, Camera camera, Node rootNode) { |     public GameWorldView(GameWorldState gameWorldState, AssetManager assetManager, Camera camera, Node rootNode) { | ||||||
|         GameWorldView gameWorldView = new GameWorldView(); |         this.state = gameWorldState; | ||||||
|         gameWorldView.assetManager = assetManager; |         this.assetManager = assetManager; | ||||||
|         gameWorldView.camera = camera; |         this.camera = camera; | ||||||
|         gameWorldView.rootNode = rootNode; |         this.rootNode = rootNode; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public static GameWorldView create(GameWorldState gameWorldState, AssetManager assetManager, Camera camera, Node rootNode) { | ||||||
|  |         GameWorldView gameWorldView = new GameWorldView(gameWorldState, assetManager, camera, rootNode); | ||||||
|         gameWorldView.initialize(); |         gameWorldView.initialize(); | ||||||
|         return gameWorldView; |         return gameWorldView; | ||||||
|     } |     } | ||||||
|  | |||||||
| @ -14,15 +14,15 @@ import roadtrip.model.VehicleInstance; | |||||||
|  */ |  */ | ||||||
| public class VehicleNode extends Node | public class VehicleNode extends Node | ||||||
| { | { | ||||||
|     VehicleInstance vehicleInstance; |     public VehicleInstance vehicleInstance; | ||||||
| 
 | 
 | ||||||
|     VehicleControl vehicleControl; |     public VehicleControl vehicleControl; | ||||||
| 
 | 
 | ||||||
|     Spatial vehicleModel; |     public Spatial vehicleModel; | ||||||
| 
 | 
 | ||||||
|     AudioNode engineAudio; |     public AudioNode engineAudio; | ||||||
|     AudioNode wheelsAudio; |     public AudioNode wheelsAudio; | ||||||
|     AudioNode wheelSlipAudio; |     public AudioNode wheelSlipAudio; | ||||||
| 
 | 
 | ||||||
|     public VehicleNode(String name, VehicleInstance vehicleInstance, |     public VehicleNode(String name, VehicleInstance vehicleInstance, | ||||||
|             VehicleControl vehicleControl, Spatial vehicleModel) |             VehicleControl vehicleControl, Spatial vehicleModel) | ||||||
|  | |||||||
| @ -9,5 +9,5 @@ import java.util.List; | |||||||
|  * Created by dejvino on 14.01.2017. |  * Created by dejvino on 14.01.2017. | ||||||
|  */ |  */ | ||||||
| public class GameWorldState { | public class GameWorldState { | ||||||
|     private List<VehicleNode> vehicles = new LinkedList<>(); |     public List<VehicleNode> vehicles = new LinkedList<>(); | ||||||
| } | } | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user