Added area rounding area to mark assets.

#implement
This commit is contained in:
cir27
2017-09-08 13:32:17 +12:00
parent 62f139c604
commit cadf995bf7
5 changed files with 218 additions and 35 deletions
@@ -30,7 +30,8 @@ public class GameView3D {
camera.getTransforms().addAll( camera.getTransforms().addAll(
new Translate(0,0, -DEFAULT_CAMERA_DEPTH) new Translate(0,0, -DEFAULT_CAMERA_DEPTH)
); );
camera.setFarClip(0); camera.setFarClip(Double.MAX_VALUE);
camera.setNearClip(0.1);
camera.setFieldOfView(FOV); camera.setFieldOfView(FOV);
gameObjects = new Group(); gameObjects = new Group();
root3D = new Group(camera, gameObjects); root3D = new Group(camera, gameObjects);
@@ -74,11 +75,11 @@ public class GameView3D {
gameObjects.getChildren().addAll(s, left, right, top, bottom, boat, boat2, boat3, sMarker, fMarker, marker, coin); gameObjects.getChildren().addAll(s, left, right, top, bottom, boat, boat2, boat3, sMarker, fMarker, marker, coin);
view.sceneProperty().addListener((obs, old, scene) -> { view.sceneProperty().addListener((obs, old, scene) -> {
if (scene!=null) if (scene!=null)
makeMovement(scene); enableCameraMovement(scene);
}); });
} }
public void makeMovement(Scene s) { public void enableCameraMovement(Scene s) {
s.setOnKeyPressed(event -> { s.setOnKeyPressed(event -> {
switch (event.getCode()) { switch (event.getCode()) {
case UP: case UP:
@@ -12,6 +12,7 @@ import javafx.scene.paint.PhongMaterial;
import javafx.scene.shape.MeshView; import javafx.scene.shape.MeshView;
import javafx.scene.transform.Rotate; import javafx.scene.transform.Rotate;
import javafx.scene.transform.Scale; import javafx.scene.transform.Scale;
import seng302.model.token.TokenType;
/** /**
* Factory class for creating 3D models of boats. * Factory class for creating 3D models of boats.
@@ -80,35 +81,44 @@ public class ModelFactory {
public static Model importModel(ModelType tokenType) { public static Model importModel(ModelType tokenType) {
ColModelImporter importer = new ColModelImporter(); ColModelImporter importer = new ColModelImporter();
importer.read(ModelFactory.class.getResource("/meshes/" + tokenType.filename)); importer.read(ModelFactory.class.getResource("/meshes/" + tokenType.filename));
Group model = new Group(importer.getImport()); Group assets = new Group(importer.getImport());
AnimationTimer animationTimer;
switch (tokenType) { switch (tokenType) {
case VELOCITY_COIN: case VELOCITY_COIN:
model.setRotationAxis(new Point3D(1,0,0)); return makeCoinPickup(assets);
model.setRotate(90); case FINISH_MARKER:
model.setTranslateX(0.2); case PLAIN_MARKER:
model.setTranslateY(1); case START_MARKER:
model.getTransforms().add(new Rotate(0 ,new Point3D(0,1,0))); return makeMarker(assets);
animationTimer = new AnimationTimer() { default:
return new Model(assets, null);
}
}
private static Model makeCoinPickup(Group assets){
assets.setRotationAxis(new Point3D(1,0,0));
assets.setRotate(90);
assets.setTranslateX(0.2);
assets.setTranslateY(1);
assets.getTransforms().add(new Rotate(0 ,new Point3D(0,1,0)));
return new Model(assets, new AnimationTimer() {
private double rotation = 0; private double rotation = 0;
private Group group = model; private Group group = assets;
@Override @Override
public void handle(long now) { public void handle(long now) {
rotation += 0.5; rotation += 0.5;
((Rotate) group.getTransforms().get(0)).setAngle(rotation); ((Rotate) group.getTransforms().get(0)).setAngle(rotation);
} }
}; });
break;
case FINISH_MARKER:
case PLAIN_MARKER:
case START_MARKER:
model.getTransforms().add(new Rotate(90, new Point3D(1, 0, 0)));
default:
animationTimer = null;
break;
} }
return new Model(model, animationTimer);
private static Model makeMarker(Group marker) {
ColModelImporter importer = new ColModelImporter();
importer.read(ModelFactory.class.getResource("/meshes/" + ModelType.MARK_AREA.filename));
Group area = new Group(importer.getImport());
area.getChildren().add(marker);
area.getTransforms().add(new Rotate(90, new Point3D(1, 0, 0)));
return new Model(area, null);
} }
} }
@@ -9,7 +9,8 @@ public enum ModelType {
VELOCITY_COIN ("velocity_pickup.dae"), VELOCITY_COIN ("velocity_pickup.dae"),
FINISH_MARKER ("finish_marker.dae"), FINISH_MARKER ("finish_marker.dae"),
START_MARKER ("start_marker.dae"), START_MARKER ("start_marker.dae"),
PLAIN_MARKER ("plain_marker.dae"); PLAIN_MARKER ("plain_marker.dae"),
MARK_AREA ("mark_area.dae");
final String filename; final String filename;
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long