Browse Source

Improved camera position, added boxes to the map.

master
Dejvino 7 years ago
parent
commit
da8c1e6bc7
4 changed files with 10 additions and 26 deletions
  1. +2
    -0
      README.md
  2. BIN
      screenshot.png
  3. +4
    -24
      src/roadtrip/PhysicsTestHelper.java
  4. +4
    -2
      src/roadtrip/RoadTrip.java

+ 2
- 0
README.md 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


BIN
screenshot.png View File

Before After
Width: 1026  |  Height: 795  |  Size: 871 KiB Width: 1026  |  Height: 795  |  Size: 910 KiB

+ 4
- 24
src/roadtrip/PhysicsTestHelper.java 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++) {
Box box = new Box(0.25f, 0.25f, 0.25f);
for (int i = 0; i < 20; i++) {
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) {


+ 4
- 2
src/roadtrip/RoadTrip.java 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));
cam.lookAt(vehicle.getPhysicsLocation(), Vector3f.UNIT_Y);
Vector3f vehicleLocation = vehicle.getPhysicsLocation();
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) {


Loading…
Cancel
Save