1
0
mirror of https://github.com/Dejvino/roadtrip synced 2024-11-21 23:42:35 +00:00

Refactor: enabled vehicles again.

This commit is contained in:
Dejvino 2017-01-14 23:36:47 +01:00
parent a2af1e02bb
commit 3c104a3d38
5 changed files with 46 additions and 41 deletions

View File

@ -36,6 +36,7 @@ import com.jme3.terrain.geomipmap.TerrainQuad;
import roadtrip.model.VehicleInstance;
import roadtrip.view.GameWorldView;
import roadtrip.view.VehicleNode;
import roadtrip.view.model.GameWorldState;
import roadtrip.view.model.Player;
/**
@ -53,6 +54,7 @@ public class RoadTrip extends SimpleApplication implements ActionListener {
private BulletAppState bulletAppState;
private GameWorldState gameWorldState;
private GameWorldView gameWorldView;
private ChaseCamera chaseCam;
@ -87,8 +89,9 @@ public class RoadTrip extends SimpleApplication implements ActionListener {
dl.setColor(ColorRGBA.LightGray);
dl.setDirection(new Vector3f(1, -1, 1));
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() {
@Override
@ -114,11 +117,11 @@ public class RoadTrip extends SimpleApplication implements ActionListener {
});
/*addCar();
addCar();
addCar();
addCar();
addCar();*/
addCar();
addCar();
addPerson();
addPerson();
addPerson();
@ -157,10 +160,10 @@ public class RoadTrip extends SimpleApplication implements ActionListener {
inputManager.addListener(this, "Esc");
}
/*private void addCar()
private void addCar()
{
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;
Material mat = new Material(getAssetManager(), "Common/MatDefs/Misc/Unshaded.j3md");
@ -335,9 +338,9 @@ public class RoadTrip extends SimpleApplication implements ActionListener {
getPhysicsSpace().add(vehicleControl);
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);
}*/
}
private Node addPerson() {
Spatial personModel = assetManager.loadModel("Models/person.j3o");
@ -427,10 +430,8 @@ public class RoadTrip extends SimpleApplication implements ActionListener {
public void simpleUpdate(float tpf) {
Vector3f playerLocation = player.node.getWorldTranslation();
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.engineAudio.setVelocity(new Vector3f(0, 0, 0));
vehicle.engineAudio.updateGeometricState();
@ -466,7 +467,7 @@ public class RoadTrip extends SimpleApplication implements ActionListener {
// TODO: pitch
//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);
}*/
}
listener.setLocation(cam.getLocation());
listener.setRotation(cam.getRotation());
@ -527,7 +528,7 @@ public class RoadTrip extends SimpleApplication implements ActionListener {
if (value) {
System.out.println("Reset - to car");
Vector3f playerPos = player.node.getWorldTranslation();
/*for (VehicleNode vehicle : vehicles) {
for (VehicleNode vehicle : gameWorldState.vehicles) {
Vector3f vehiclePos = vehicle.getWorldTranslation();
float dist = playerPos.distance(vehiclePos);
System.out.println(" .. dist: " + dist);
@ -544,11 +545,11 @@ public class RoadTrip extends SimpleApplication implements ActionListener {
player.walkDir = new Vector3f();
break;
}
}*/
}
}
}
} else {
/*VehicleInstance playerVehicle = player.vehicleNode.vehicleInstance;
VehicleInstance playerVehicle = player.vehicleNode.vehicleInstance;
VehicleControl playerVehicleControl = player.vehicleNode.vehicleControl;
int playerCarType = playerVehicle.carType;
float steerMax = 0.5f;
@ -617,7 +618,7 @@ public class RoadTrip extends SimpleApplication implements ActionListener {
player.walkDir = new Vector3f();
} else {
}
}*/
}
}
if (binding.equals("Esc")) {
stop();

View File

@ -8,20 +8,20 @@ package roadtrip.model;
*/
public class VehicleInstance
{
final static int WEAK = 1;
final static int TRUCK = 2;
final static int SPORT = 3;
public static final int WEAK = 1;
public static final int TRUCK = 2;
public static final int SPORT = 3;
static int getVehicleTypesCount() {
public static int getVehicleTypesCount() {
return SPORT;
}
int carType;
float accelerationForce = 200.0f;
float brakeForce = 100.0f;
float steeringValue = 0;
float accelerationValue = 0;
float accelerationSmooth = 0;
public int carType;
public float accelerationForce = 200.0f;
public float brakeForce = 100.0f;
public float steeringValue = 0;
public float accelerationValue = 0;
public float accelerationSmooth = 0;
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) {
case WEAK: return new WeakVehicle();
case TRUCK: return new TruckVehicle();

View File

@ -27,7 +27,7 @@ import roadtrip.view.model.GameWorldState;
*/
public class GameWorldView {
private GameWorldState state = new GameWorldState();
private GameWorldState state;
private AssetManager assetManager;
private Camera camera;
@ -35,11 +35,15 @@ public class GameWorldView {
public TerrainView terrain = new TerrainView(new TerrainDataProvider());
public static GameWorldView create(AssetManager assetManager, Camera camera, Node rootNode) {
GameWorldView gameWorldView = new GameWorldView();
gameWorldView.assetManager = assetManager;
gameWorldView.camera = camera;
gameWorldView.rootNode = rootNode;
public GameWorldView(GameWorldState gameWorldState, AssetManager assetManager, Camera camera, Node rootNode) {
this.state = gameWorldState;
this.assetManager = assetManager;
this.camera = camera;
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();
return gameWorldView;
}

View File

@ -14,15 +14,15 @@ import roadtrip.model.VehicleInstance;
*/
public class VehicleNode extends Node
{
VehicleInstance vehicleInstance;
public VehicleInstance vehicleInstance;
VehicleControl vehicleControl;
public VehicleControl vehicleControl;
Spatial vehicleModel;
public Spatial vehicleModel;
AudioNode engineAudio;
AudioNode wheelsAudio;
AudioNode wheelSlipAudio;
public AudioNode engineAudio;
public AudioNode wheelsAudio;
public AudioNode wheelSlipAudio;
public VehicleNode(String name, VehicleInstance vehicleInstance,
VehicleControl vehicleControl, Spatial vehicleModel)

View File

@ -9,5 +9,5 @@ import java.util.List;
* Created by dejvino on 14.01.2017.
*/
public class GameWorldState {
private List<VehicleNode> vehicles = new LinkedList<>();
public List<VehicleNode> vehicles = new LinkedList<>();
}