mirror of
https://github.com/michaelrausch/Party-Parrots-At-Sea.git
synced 2026-05-09 14:28:43 +00:00
Added area rounding area to mark assets.
#implement
This commit is contained in:
@@ -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
Reference in New Issue
Block a user