1
0
mirror of https://github.com/Dejvino/roadtrip synced 2024-11-14 04:57:28 +00:00

Improved camera position, added boxes to the map.

This commit is contained in:
Dejvino 2016-12-31 01:17:11 +01:00
parent 07f1864b4d
commit da8c1e6bc7
4 changed files with 10 additions and 26 deletions

View File

@ -6,7 +6,9 @@ A game about a journey involving vehicles and obstacles.
## Status ## Status
### DONE ### DONE
* Physics-based vehicle * Physics-based vehicle
* Camera following the player
* Hilly ground * Hilly ground
* Collidable objects (testing)
### TODO ### TODO
* Orbit camera * Orbit camera

Binary file not shown.

Before

Width:  |  Height:  |  Size: 871 KiB

After

Width:  |  Height:  |  Size: 910 KiB

View File

@ -72,38 +72,18 @@ public class PhysicsTestHelper {
Material material = new Material(assetManager, "Common/MatDefs/Misc/Unshaded.j3md"); Material material = new Material(assetManager, "Common/MatDefs/Misc/Unshaded.j3md");
material.setTexture("ColorMap", assetManager.loadTexture("Interface/Logo/Monkey.jpg")); material.setTexture("ColorMap", assetManager.loadTexture("Interface/Logo/Monkey.jpg"));
Box floorBox = new Box(140, 0.25f, 140);
Geometry floorGeometry = new Geometry("Floor", floorBox);
floorGeometry.setMaterial(material);
floorGeometry.setLocalTranslation(0, -5, 0);
// Plane plane = new Plane();
// plane.setOriginNormal(new Vector3f(0, 0.25f, 0), Vector3f.UNIT_Y);
// floorGeometry.addControl(new RigidBodyControl(new PlaneCollisionShape(plane), 0));
floorGeometry.addControl(new RigidBodyControl(0));
rootNode.attachChild(floorGeometry);
space.add(floorGeometry);
//movable boxes //movable boxes
for (int i = 0; i < 12; i++) { for (int i = 0; i < 20; i++) {
Box box = new Box(0.25f, 0.25f, 0.25f); float s = i % 3 == 0 ? 1f : 0.4f;
Box box = new Box(s, s, s);
Geometry boxGeometry = new Geometry("Box", box); Geometry boxGeometry = new Geometry("Box", box);
boxGeometry.setMaterial(material); boxGeometry.setMaterial(material);
boxGeometry.setLocalTranslation(i, 5, -3); boxGeometry.setLocalTranslation(i * 1.2f, 35, -3);
//RigidBodyControl automatically uses box collision shapes when attached to single geometry with box mesh //RigidBodyControl automatically uses box collision shapes when attached to single geometry with box mesh
boxGeometry.addControl(new RigidBodyControl(2)); boxGeometry.addControl(new RigidBodyControl(2));
rootNode.attachChild(boxGeometry); rootNode.attachChild(boxGeometry);
space.add(boxGeometry); space.add(boxGeometry);
} }
//immovable sphere with mesh collision shape
Sphere sphere = new Sphere(8, 8, 1);
Geometry sphereGeometry = new Geometry("Sphere", sphere);
sphereGeometry.setMaterial(material);
sphereGeometry.setLocalTranslation(4, -4, 2);
sphereGeometry.addControl(new RigidBodyControl(new MeshCollisionShape(sphere), 0));
rootNode.attachChild(sphereGeometry);
space.add(sphereGeometry);
} }
public static void createPhysicsTestWorldSoccer(Node rootNode, AssetManager assetManager, PhysicsSpace space) { public static void createPhysicsTestWorldSoccer(Node rootNode, AssetManager assetManager, PhysicsSpace space) {

View File

@ -209,8 +209,10 @@ public class RoadTrip extends SimpleApplication implements ActionListener {
@Override @Override
public void simpleUpdate(float tpf) { public void simpleUpdate(float tpf) {
cam.setLocation(new Vector3f(-10f, 35f, -10f)); Vector3f vehicleLocation = vehicle.getPhysicsLocation();
cam.lookAt(vehicle.getPhysicsLocation(), Vector3f.UNIT_Y); Vector3f newLocation = new Vector3f(vehicleLocation).add(new Vector3f(-1f, 1.5f, 2.4f).mult(20f));
cam.setLocation(new Vector3f(cam.getLocation()).interpolate(newLocation, Math.min(tpf, 1f)));
cam.lookAt(vehicleLocation, Vector3f.UNIT_Y);
} }
public void onAction(String binding, boolean value, float tpf) { public void onAction(String binding, boolean value, float tpf) {