diff --git a/GameEngine/src/main/java/gameEngine/GameEditor.java b/GameEngine/src/main/java/gameEngine/GameEditor.java index 512ddcc..f18278a 100644 --- a/GameEngine/src/main/java/gameEngine/GameEditor.java +++ b/GameEngine/src/main/java/gameEngine/GameEditor.java @@ -32,6 +32,9 @@ private Button createMoveImageComponentViewButton; private Text createMoveImageComponentViewButtonText; + private Button createMoveStraightComponentViewButton; + private Text createMoveStraightComponentViewButtonText; + private Button createEntityViewButton; private Text createEntityViewButtonText; public InputField[][] inspectorInputFields; @@ -58,6 +61,9 @@ createMoveImageComponentViewButton = new Button(20, 73, 3.2f, 0.5f); createMoveImageComponentViewButtonText = new Text(20 +5.25f, 70.4f, "Add MoveImage", 24); + createMoveStraightComponentViewButton = new Button(20, 113, 3.2f, 0.5f); + createMoveStraightComponentViewButtonText = new Text(20 +5.25f, 113.4f, "Add MoveStraight", 24); + createEntityViewButton = new Button(240, 33, 3.2f, 0.5f); createEntityViewButtonText = new Text(240 +5.25f, 30.4f, "Add Entity", 24); @@ -165,13 +171,16 @@ createMoveImageComponentViewButton.clearListeners(); createMoveImageComponentViewButton.addListener(scene::addNewMoveImageComponent); + createMoveStraightComponentViewButton.clearListeners(); + createMoveStraightComponentViewButton.addListener(scene::addMoveStraightComponent); + createEntityViewButton.clearListeners(); createEntityViewButton.addListener(scene::addNewEntity); registerUpdatable(playButton, playButtonText, dtramButton, dtramButtonText, createMeshComponentViewButton, createMeshComponentViewButtonText, createMoveImageComponentViewButton, createMoveImageComponentViewButtonText, - createEntityViewButton, createEntityViewButtonText); + createEntityViewButton, createEntityViewButtonText, createMoveStraightComponentViewButton, createMoveStraightComponentViewButtonText); } public void setScene(Scene newScene) { diff --git a/GameEngine/src/main/java/gameEngine/GameEngineModelFileGenerator.java b/GameEngine/src/main/java/gameEngine/GameEngineModelFileGenerator.java index e76f11a..5f976fd 100644 --- a/GameEngine/src/main/java/gameEngine/GameEngineModelFileGenerator.java +++ b/GameEngine/src/main/java/gameEngine/GameEngineModelFileGenerator.java @@ -1,5 +1,6 @@ package gameEngine; +import algorithms.TypeInference; import gameEngine.views.Window; import models.algebra.Constant; import models.algebra.Expression; @@ -94,7 +95,7 @@ save(); - //TypeInference.infer(model); + TypeInference.infer(model); Simulator simulator = new Simulator(model); simulator.init(); Window window = Window.get(); diff --git a/GameEngine/src/main/java/gameEngine/entites/Camera.java b/GameEngine/src/main/java/gameEngine/entites/Camera.java index b2e920b..5172219 100644 --- a/GameEngine/src/main/java/gameEngine/entites/Camera.java +++ b/GameEngine/src/main/java/gameEngine/entites/Camera.java @@ -14,17 +14,12 @@ public Camera(String id, ProjectionType projection){ super(id); this.projection = projection; - this.position = new Vector3f(0, 0, 0); // 初期位置を原点に設定 } - - private Vector3f position; - public Vector3f getPosition() { - return position; + return transform.position; } - public void move(float x, float y, float z) { - position.add(x, y, z); + transform.position.add(x, y, z); } } diff --git a/GameEngine/src/main/java/gameEngine/entites/EditorEntity.java b/GameEngine/src/main/java/gameEngine/entites/EditorEntity.java index 001a579..5f72f29 100644 --- a/GameEngine/src/main/java/gameEngine/entites/EditorEntity.java +++ b/GameEngine/src/main/java/gameEngine/entites/EditorEntity.java @@ -9,7 +9,7 @@ public class EditorEntity extends Entity { public final List editorComponents = new ArrayList<>(); - public enum Connectiontype {Mesh, MoveImage} + public enum Connectiontype {Mesh, MoveImage, MoveStraight} public List ComponentConnections = new ArrayList<>(); public EditorEntity(String eid) { diff --git a/GameEngine/src/main/java/gameEngine/entites/gameComponents/MoveStraight.java b/GameEngine/src/main/java/gameEngine/entites/gameComponents/MoveStraight.java new file mode 100644 index 0000000..13c2586 --- /dev/null +++ b/GameEngine/src/main/java/gameEngine/entites/gameComponents/MoveStraight.java @@ -0,0 +1,43 @@ +package gameEngine.entites.gameComponents; + +import gameEngine.Time; +import gameEngine.entites.GameObject; +import gameEngine.geometry.Transform; + +public class MoveStraight extends GameComponent{ + + private GameObject parent; + private final int moveSpeed = 100; + public enum Direction {UP, DOWN, LEFT, RIGHT} + private final Direction direction = Direction.LEFT; + + public MoveStraight(GameObject parent){ + this.parent = parent; + } + @Override + public GameComponent copy() { + return this; + } + + public void update() { + Transform transform = parent.transform; + if (transform != null) { + float x = transform.position.x; + float y = transform.position.y; + float z = transform.position.z; + + if (direction == Direction.UP) { + transform.setPosition(x, y - moveSpeed * Time.deltaTime, z); + } + if (direction == Direction.LEFT) { + transform.setPosition(x - moveSpeed * Time.deltaTime, y, z); + } + if (direction == Direction.DOWN) { + transform.setPosition(x, y + moveSpeed * Time.deltaTime, z); + } + if (direction == Direction.RIGHT) { + transform.setPosition(x + moveSpeed * Time.deltaTime, y, z); + } + } + } +} diff --git a/GameEngine/src/main/java/gameEngine/scenes/EditorScene.java b/GameEngine/src/main/java/gameEngine/scenes/EditorScene.java index 161707f..a4afd5f 100644 --- a/GameEngine/src/main/java/gameEngine/scenes/EditorScene.java +++ b/GameEngine/src/main/java/gameEngine/scenes/EditorScene.java @@ -30,6 +30,7 @@ public ResourceManager resourceManager = new ResourceManager(); private EditorEntity clickedEntity = null; private Camera editorCamera; + private Vector3f centerPosition = new Vector3f((float) Window.get().width / 2, (float) Window.get().height / 2, 0); public EditorScene(float windowWidth, float windowHeight){ System.out.println("Active Editor scene"); @@ -47,7 +48,7 @@ @Override public void update(float dt) { - handleCameraMovement(); + handleEditorCameraMovement(); updateDraggable(); changeScene(1, dt); //Gameシーンへの以降処理 @@ -93,7 +94,8 @@ private void addEntityView(){ EditorEntity object = createEditorEntity(); - object.transform.setPosition(0 ,0, 0); + object.transform.setPosition(new Vector3f(centerPosition).add(editorCamera.getPosition())); + System.out.println(editorCamera.getPosition()); object.addEditorComponent(new EntityView(object)); } @@ -103,7 +105,7 @@ private void addMeshComponentView(){ EditorEntity object = createEditorEntity(); - object.transform.setPosition(0 ,0, 0); + object.transform.setPosition(new Vector3f(centerPosition).add(editorCamera.getPosition())); object.addEditorComponent(new ComponentView(object, EditorEntity.Connectiontype.Mesh, resourceManager,"Mesh")); } @@ -113,15 +115,25 @@ private void addMoveImageComponentView(){ EditorEntity object = createEditorEntity(); - object.transform.setPosition(0 ,0, 0); + object.transform.setPosition(new Vector3f(centerPosition).add(editorCamera.getPosition())); object.addEditorComponent(new ComponentView(object, EditorEntity.Connectiontype.MoveImage, "MoveImage")); } + public void addMoveStraightComponent() { + enqueueTask(this::addMoveStraightComponentView); + } + + private void addMoveStraightComponentView(){ + EditorEntity object = createEditorEntity(); + object.transform.setPosition(new Vector3f(centerPosition).add(editorCamera.getPosition())); + object.addEditorComponent(new ComponentView(object, EditorEntity.Connectiontype.MoveStraight, "MoveStraight")); + } + ///---------------------------------------------------------------- /// Editorのカメラ ///---------------------------------------------------------------- - private void handleCameraMovement() { + private void handleEditorCameraMovement() { Vector3f velocity = new Vector3f(0, 0, 0); float speed = 200.0f; @@ -150,6 +162,7 @@ editorEntity.transform.position.z ); } + System.out.println(editorCamera.transform.position); } ///---------------------------------------------------------------- /// 選択、ドラッグ処理 diff --git a/GameEngine/src/main/java/gameEngine/scenes/GameScene.java b/GameEngine/src/main/java/gameEngine/scenes/GameScene.java index f04081e..6d15c23 100644 --- a/GameEngine/src/main/java/gameEngine/scenes/GameScene.java +++ b/GameEngine/src/main/java/gameEngine/scenes/GameScene.java @@ -61,6 +61,9 @@ if(connectionType == EditorEntity.Connectiontype.MoveImage){ object.addComponent(new MoveImage(object)); } + if(connectionType == EditorEntity.Connectiontype.MoveStraight){ + object.addComponent(new MoveStraight(object)); + } } }