diff --git a/GameEngine/src/main/java/gameEngine/entites/gameComponents/ColorController.java b/GameEngine/src/main/java/gameEngine/entites/gameComponents/ColorController.java index 207641b..7bba6c8 100644 --- a/GameEngine/src/main/java/gameEngine/entites/gameComponents/ColorController.java +++ b/GameEngine/src/main/java/gameEngine/entites/gameComponents/ColorController.java @@ -1,4 +1,6 @@ package gameEngine.entites.gameComponents; +import gameEngine.entites.Entity; +import gameEngine.entites.GameObject; import gameEngine.input.*; import gameEngine.views.Color; @@ -8,11 +10,15 @@ public class ColorController extends GameComponent { private Color color = new Color(0,0,0); + public ColorController() { + } + @Override public GameComponent copy() { return this; } + public void init() { color = Color.BLACK; } diff --git a/GameEngine/src/main/java/gameEngine/entites/gameComponents/CopyEntity.java b/GameEngine/src/main/java/gameEngine/entites/gameComponents/CopyEntity.java index f1b214c..bb9d02e 100644 --- a/GameEngine/src/main/java/gameEngine/entites/gameComponents/CopyEntity.java +++ b/GameEngine/src/main/java/gameEngine/entites/gameComponents/CopyEntity.java @@ -14,12 +14,12 @@ public CopyEntity(Entity entity){ this.entity = entity; } - @Override public GameComponent copy() { return this; } + public void update() { if(Input.GetKeyDown(GLFW_KEY_G)){ window.getScene().Instantiate((GameObject) entity); diff --git a/GameEngine/src/main/java/gameEngine/entites/gameComponents/Mesh.java b/GameEngine/src/main/java/gameEngine/entites/gameComponents/Mesh.java index a5b9c2b..dd2d5f8 100644 --- a/GameEngine/src/main/java/gameEngine/entites/gameComponents/Mesh.java +++ b/GameEngine/src/main/java/gameEngine/entites/gameComponents/Mesh.java @@ -26,7 +26,6 @@ this.texture = new Texture(texturePath); // Load the image } } - public Mesh(Mesh original, Entity newParent) { this.type = original.type; this.texture = original.texture; // Textureをそのまま参照 diff --git a/GameEngine/src/main/java/gameEngine/entites/gameComponents/MoveImage.java b/GameEngine/src/main/java/gameEngine/entites/gameComponents/MoveImage.java index 1822cee..ba50d62 100644 --- a/GameEngine/src/main/java/gameEngine/entites/gameComponents/MoveImage.java +++ b/GameEngine/src/main/java/gameEngine/entites/gameComponents/MoveImage.java @@ -15,7 +15,6 @@ public MoveImage(Entity entity){ this.entity = entity; } - @Override public GameComponent copy() { return this; diff --git a/GameEngine/src/main/java/gameEngine/scenes/Scene.java b/GameEngine/src/main/java/gameEngine/scenes/Scene.java index 57d42a2..215f8e0 100644 --- a/GameEngine/src/main/java/gameEngine/scenes/Scene.java +++ b/GameEngine/src/main/java/gameEngine/scenes/Scene.java @@ -3,14 +3,15 @@ import gameEngine.entites.Camera; import gameEngine.entites.Entity; import gameEngine.entites.GameObject; -import gameEngine.entites.gameComponents.GameComponent; -import gameEngine.entites.gameComponents.Mesh; +import gameEngine.entites.gameComponents.*; import gameEngine.geometry.Transform; import gameEngine.input.Input; import gameEngine.views.Color; import gameEngine.views.Window; import java.awt.event.KeyEvent; +import java.lang.reflect.Constructor; +import java.lang.reflect.InvocationTargetException; import java.util.HashMap; import java.util.LinkedList; import java.util.Queue; @@ -95,9 +96,18 @@ for (GameComponent gameComponent : original.gameComponents) { if (gameComponent instanceof Mesh) { newGameObject.addComponent(new Mesh((Mesh)gameComponent.copy(), newGameObject)); - } else { - GameComponent copiedComponent = gameComponent.copy(); - newGameObject.addComponent(copiedComponent);//Newしないとできないかも + } + if (gameComponent instanceof ColorController) { + newGameObject.addComponent(new ColorController()); + } + if (gameComponent instanceof CopyEntity) { + newGameObject.addComponent(new CopyEntity(newGameObject)); + } + if (gameComponent instanceof MoveImage) { + newGameObject.addComponent(new MoveImage(newGameObject)); + } + if (gameComponent instanceof Physics) { + newGameObject.addComponent(new Physics(newGameObject)); } }