diff --git a/AlgebraicDataflowArchitectureModel/src/simulator/interfaces/NativeSender.java b/AlgebraicDataflowArchitectureModel/src/simulator/interfaces/NativeSender.java index a286401..7e74929 100644 --- a/AlgebraicDataflowArchitectureModel/src/simulator/interfaces/NativeSender.java +++ b/AlgebraicDataflowArchitectureModel/src/simulator/interfaces/NativeSender.java @@ -33,6 +33,7 @@ try { Event event = new Event(channel, message, resourcePath, resource); simulator.transition(event); + System.out.println(System.nanoTime()); //終了 } catch (ParameterizedIdentifierIsFutureWork | ResolvingMultipleDefinitionIsFutureWork | InvalidMessage | UnificationFailed | ValueUndefined e) { e.printStackTrace(); } diff --git a/AlgebraicDataflowArchitectureModel/src/simulator/interfaces/timers/TimerEventSender.java b/AlgebraicDataflowArchitectureModel/src/simulator/interfaces/timers/TimerEventSender.java index 1dce61c..acdb333 100644 --- a/AlgebraicDataflowArchitectureModel/src/simulator/interfaces/timers/TimerEventSender.java +++ b/AlgebraicDataflowArchitectureModel/src/simulator/interfaces/timers/TimerEventSender.java @@ -16,6 +16,7 @@ @Override public void run() { + System.out.println(System.nanoTime()); //開始 Expression message = channel.getOutputChannelMembers().iterator().next().getStateTransition().getMessageExpression(); message = (Expression) message.clone(); sendToModel(message); diff --git a/GameEngine/resources/GameEngineTest.model b/GameEngine/resources/GameEngineTest.model index 53cdc14..aeb6c4c 100644 --- a/GameEngine/resources/GameEngineTest.model +++ b/GameEngine/resources/GameEngineTest.model @@ -1,8 +1,8 @@ init { scene := { "entities": { - "3": { - "eid": "3", + "1": { + "eid": "1", "transform": { "rotation": { "x": 0.0, @@ -15,8 +15,8 @@ "z": 1.0 }, "position": { - "x": 524.0, - "y": 354.0, + "x": 718.0, + "y": 442.0, "z": 0.0 } }, @@ -54,8 +54,8 @@ "type": "sprite" } } -enemy3 := { - "eid": "3", +enemy1 := { + "eid": "1", "transform": { "rotation": { "x": 0.0, @@ -68,8 +68,8 @@ "z": 1.0 }, "position": { - "x": 524.0, - "y": 354.0, + "x": 718.0, + "y": 442.0, "z": 0.0 } }, @@ -108,20 +108,30 @@ "z": z } } -channel MoveEnemy3 { - in enemy3.transform.position(curPos:Json,moveEnemy3(nextPos,eid)) = nextPos - ref enemy3.eid(eid,moveEnemy3(nextPos,eid)) - out scene.entities.{eid:Str}.transform.position(curPos:Json,moveEnemy3(nextPos,eid)) = nextPos -} native channel EntityPositionUpdate(eid:Str) { in scene.entities.{eid:Str}.transform.position(curPos:Json,updatePosition(nextPos.x,nextPos.y,nextPos.z)) = nextPos } +channel MoveEnemy1 { + in enemy1.transform.position(curPos:Json,moveEnemy1(nextPos,eid)) = nextPos + ref enemy1.eid(eid,moveEnemy1(nextPos,eid)) + out scene.entities.{eid:Str}.transform.position(curPos:Json,moveEnemy1(nextPos,eid)) = nextPos +} native channel CameraProjectionUpdate { in scene.camera.projection(curProj:Json,updateProjection(curProj,nextProj)) = nextProj } native channel CameraScaleUpdate { in scene.camera.transform.scale(curScale:Json,updateScale(nextScale.x,nextScale.y,nextScale.z)) = nextScale } +channel UpdateEnemy1(tid:Str) { + in timers.{tid:Str}.count(curCount:Long,updateEnemy1(type,speed)) = nextCount + ref enemy1.move.type(type:Str,updateEnemy1(type,speed)) + ref enemy1.move.speed(speed:Float,updateEnemy1(type,speed)) + out enemy1.transform.position(curPos:Json,updateEnemy1(type,speed)) = { + "x": (curPos.x-speed), + "y": curPos.y, + "z": curPos.z +} +} native channel EntitySpriteUpdate(eid:Str) { in scene.entities.{eid:Str}.mesh(curMesh:Json,updateSprite(spritePath:Str)) = { "sprite": spritePath, @@ -131,23 +141,13 @@ native channel EntityScaleUpdate(eid:Str) { in scene.entities.{eid:Str}.transform.scale(curScale:Json,updateScale(nextScale.x,nextScale.y,nextScale.z)) = nextScale } -channel UpdateEnemy3(tid:Str) { - in timers.{tid:Str}.count(curCount:Long,updateEnemy3(type,speed)) = nextCount - ref enemy3.move.speed(speed:Float,updateEnemy3(type,speed)) - ref enemy3.move.type(type:Str,updateEnemy3(type,speed)) - out enemy3.transform.position(curPos:Json,updateEnemy3(type,speed)) = { - "x": (curPos.x+speed), - "y": curPos.y, - "z": curPos.z -} -} native channel TimersUpdated { in timers(curTimers:Map,update(curTimers,nextTimers)) = nextTimers } -channel RotateEnemy3 { - in enemy3.transform.rotation(curRot:Json,rotateEnemy3(nextRot,eid)) = nextRot - ref enemy3.eid(eid,rotateEnemy3(nextRot,eid)) - out scene.entities.{eid:Str}.transform.rotation(curRot:Json,rotateEnemy3(nextRot,eid)) = nextRot +channel RotateEnemy1 { + in enemy1.transform.rotation(curRot:Json,rotateEnemy1(nextRot,eid)) = nextRot + ref enemy1.eid(eid,rotateEnemy1(nextRot,eid)) + out scene.entities.{eid:Str}.transform.rotation(curRot:Json,rotateEnemy1(nextRot,eid)) = nextRot } native channel CameraPositionUpdate { in scene.camera.transform.position(curPos:Json,updatePosition(nextPos.x,nextPos.y,nextPos.z)) = nextPos diff --git a/GameEngine/src/main/java/gameEngine/GameEditor.java b/GameEngine/src/main/java/gameEngine/GameEditor.java index 7fc7960..81db05c 100644 --- a/GameEngine/src/main/java/gameEngine/GameEditor.java +++ b/GameEngine/src/main/java/gameEngine/GameEditor.java @@ -14,7 +14,7 @@ public class GameEditor { private EditorScene scene; private float windowWidth, windowHeight; - private final String frameImagePath = Window.resourcePath + "EditorFrame.png"; + private final String frameImagePath = Window.RESOURCE_PATH + "EditorFrame.png"; private List updatableviews = new ArrayList<>(); diff --git a/GameEngine/src/main/java/gameEngine/GameEngineModelFileGenerator.java b/GameEngine/src/main/java/gameEngine/GameEngineModelFileGenerator.java index 54ef934..f995f88 100644 --- a/GameEngine/src/main/java/gameEngine/GameEngineModelFileGenerator.java +++ b/GameEngine/src/main/java/gameEngine/GameEngineModelFileGenerator.java @@ -5,11 +5,9 @@ import gameEngine.entites.Entity; import gameEngine.entites.editorComponents.ComponentView; import gameEngine.entites.editorComponents.EntityView; -import gameEngine.entites.gameComponents.Mesh; import gameEngine.entites.gameComponents.Move; import gameEngine.geometry.Transform; import gameEngine.scenes.EditorScene; -import gameEngine.scenes.Scene; import gameEngine.views.Window; import models.algebra.Constant; import models.algebra.Expression; @@ -27,14 +25,11 @@ import simulator.SystemState; import simulator.interfaces.timers.TimerService; -import javax.xml.crypto.Data; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; -import java.util.Objects; public class GameEngineModelFileGenerator { private DataTransferModel model; @@ -44,7 +39,7 @@ public void generate(){ try { - EditorScene editorScene = (EditorScene) Window.get().getScene(); + EditorScene editorScene = (EditorScene) Window.getInstance().getScene(); model = new DataTransferModel(); ResourcePath scene = new ResourcePath("scene"); // "scene" ResourcePath scene_time = new ResourcePath(scene, "time"); // "scene.time" @@ -386,7 +381,7 @@ TypeInference.infer(model); Simulator simulator = new Simulator(model); - Window window = Window.get(); + Window window = Window.getInstance(); window.changeScene(2); GameEnginePresenter presenter = new GameEnginePresenter(window.getScene(), simulator); TimerService timerService = new TimerService(simulator); @@ -464,7 +459,7 @@ for(EditorEntity.Connectiontype connectionType: editorEntity.ComponentConnections) { if (connectionType == EditorEntity.Connectiontype.Mesh) { meshTerm.addMember("type", new Constant("sprite", DataConstraintModel.typeString)); - meshTerm.addMember("sprite", new Constant(Window.resourcePath + "enemy1.png", DataConstraintModel.typeString)); + meshTerm.addMember("sprite", new Constant(Window.RESOURCE_PATH + "enemy1.png", DataConstraintModel.typeString)); enemyTerm.addMember("mesh", meshTerm); } if (connectionType == EditorEntity.Connectiontype.Move) { @@ -481,7 +476,7 @@ JsonTerm meshTerm = new JsonTerm(); meshTerm.addMember("type", new Constant("sprite", DataConstraintModel.typeString)); - meshTerm.addMember("sprite", new Constant(Window.resourcePath + "enemy1.png", DataConstraintModel.typeString)); + meshTerm.addMember("sprite", new Constant(Window.RESOURCE_PATH + "enemy1.png", DataConstraintModel.typeString)); JsonTerm playerTerm = new JsonTerm(); playerTerm.addMember("transform", createTransformTerm(new Transform())); @@ -496,7 +491,7 @@ // } private void addInit() { - EditorScene editorScene = (EditorScene) Window.get().getScene(); + EditorScene editorScene = (EditorScene) Window.getInstance().getScene(); ResourceHierarchy playerHierarchy = new ResourceHierarchy("player", DataConstraintModel.typeJson); playerHierarchy = model.getOrPutResourceHierarchy(playerHierarchy); diff --git a/GameEngine/src/main/java/gameEngine/entites/editorComponents/CameraView.java b/GameEngine/src/main/java/gameEngine/entites/editorComponents/CameraView.java index f02eaa0..adbbb5d 100644 --- a/GameEngine/src/main/java/gameEngine/entites/editorComponents/CameraView.java +++ b/GameEngine/src/main/java/gameEngine/entites/editorComponents/CameraView.java @@ -2,8 +2,6 @@ import gameEngine.entites.EditorEntity; import gameEngine.geometry.Transform; -import gameEngine.input.Input; -import gameEngine.input.MouseInput; import gameEngine.views.Sprite; import gameEngine.views.Text; import gameEngine.views.Window; @@ -19,8 +17,8 @@ public CameraView(EditorEntity parent) { this.parent = parent; - meshSprite = new Sprite(Window.resourcePath + "CameraFrameView.png"); - this.sprite = new Sprite(Window.resourcePath + "CameraView.png"); + meshSprite = new Sprite(Window.RESOURCE_PATH + "CameraFrameView.png"); + this.sprite = new Sprite(Window.RESOURCE_PATH + "CameraView.png"); this.text = new Text(parent.screenTransform.position.x, parent.screenTransform.position.y, "Camera", 14); sprite.updateSpriteDimensions(); portviewA = new PortView(PortView.PortType.IN, parent); diff --git a/GameEngine/src/main/java/gameEngine/entites/editorComponents/ComponentView.java b/GameEngine/src/main/java/gameEngine/entites/editorComponents/ComponentView.java index 18858bf..6180040 100644 --- a/GameEngine/src/main/java/gameEngine/entites/editorComponents/ComponentView.java +++ b/GameEngine/src/main/java/gameEngine/entites/editorComponents/ComponentView.java @@ -28,7 +28,7 @@ public ComponentView(EditorEntity parent, EditorEntity.Connectiontype connectionType, String text){ this.parent = parent; - this.sprite = new Sprite(Window.resourcePath + "ComponentView.png"); + this.sprite = new Sprite(Window.RESOURCE_PATH + "ComponentView.png"); sprite.updateSpriteDimensions(); this.text = new Text(parent.screenTransform.position.x, parent.screenTransform.position.y, text, 14); portview = new PortView(PortView.PortType.OUT, parent); diff --git a/GameEngine/src/main/java/gameEngine/entites/editorComponents/Connection.java b/GameEngine/src/main/java/gameEngine/entites/editorComponents/Connection.java index dab46dd..333af10 100644 --- a/GameEngine/src/main/java/gameEngine/entites/editorComponents/Connection.java +++ b/GameEngine/src/main/java/gameEngine/entites/editorComponents/Connection.java @@ -1,6 +1,5 @@ package gameEngine.entites.editorComponents; -import gameEngine.entites.editorComponents.PortView; import gameEngine.views.LineRenderer; import gameEngine.views.Sprite; import gameEngine.views.Window; @@ -15,8 +14,8 @@ public Connection(PortView inPort, PortView outPort) { this.portA = inPort; this.portB = outPort; - this.lineRenderer = new LineRenderer(Window.resourcePath + "Line.png"); - this.removeButtonSprite = new Sprite(Window.resourcePath + "RemoveButton.png"); + this.lineRenderer = new LineRenderer(Window.RESOURCE_PATH + "Line.png"); + this.removeButtonSprite = new Sprite(Window.RESOURCE_PATH + "RemoveButton.png"); } public void render() { diff --git a/GameEngine/src/main/java/gameEngine/entites/editorComponents/DraggableComponent.java b/GameEngine/src/main/java/gameEngine/entites/editorComponents/DraggableComponent.java index 958de54..d02be68 100644 --- a/GameEngine/src/main/java/gameEngine/entites/editorComponents/DraggableComponent.java +++ b/GameEngine/src/main/java/gameEngine/entites/editorComponents/DraggableComponent.java @@ -32,12 +32,12 @@ @Override public void update(){ - if (!(Window.get().getScene() instanceof EditorScene)) return; + if (!(Window.getInstance().getScene() instanceof EditorScene)) return; Transform transform = parent.transform; Transform screenTransform = parent.screenTransform; - Vector3f cameraPosition = Window.get().getScene().getCamera().getPosition(); + Vector3f cameraPosition = Window.getInstance().getScene().getCamera().getPosition(); Vector3f actualPosition = new Vector3f(screenTransform.position).sub(cameraPosition); //サブクラス固有処理 @@ -71,7 +71,7 @@ float mouseX = MouseInput.getX(); float mouseY = MouseInput.getY(); - EditorScene scene = (EditorScene) Window.get().getScene(); + EditorScene scene = (EditorScene) Window.getInstance().getScene(); if (scene.getSelectedEntity() == null) { if (Input.GetMouseButtonDown(0) && isMouseOver(mouseX, mouseY)) { @@ -112,7 +112,7 @@ } protected void startDragAction(float mouseX, float mouseY) { - Vector3f cameraPosition = Window.get().getScene().getCamera().getPosition(); + Vector3f cameraPosition = Window.getInstance().getScene().getCamera().getPosition(); float worldMouseX = mouseX + cameraPosition.x; float worldMouseY = mouseY + cameraPosition.y; @@ -122,7 +122,7 @@ } protected void draggingAction(float mouseX, float mouseY, boolean isRightDrag) { - Vector3f cameraPosition = Window.get().getScene().getCamera().getPosition(); + Vector3f cameraPosition = Window.getInstance().getScene().getCamera().getPosition(); float worldMouseX = mouseX + cameraPosition.x; float worldMouseY = mouseY + cameraPosition.y; diff --git a/GameEngine/src/main/java/gameEngine/entites/editorComponents/EntityView.java b/GameEngine/src/main/java/gameEngine/entites/editorComponents/EntityView.java index 7cc9c32..5d2f0d6 100644 --- a/GameEngine/src/main/java/gameEngine/entites/editorComponents/EntityView.java +++ b/GameEngine/src/main/java/gameEngine/entites/editorComponents/EntityView.java @@ -16,7 +16,7 @@ public EntityView(EditorEntity parent) { this.parent = parent; - this.sprite = new Sprite(Window.resourcePath + "EntityView.png"); + this.sprite = new Sprite(Window.RESOURCE_PATH + "EntityView.png"); this.text = new Text(parent.screenTransform.position.x, parent.screenTransform.position.y, "Entity", 14); sprite.updateSpriteDimensions(); portviewA = new PortView(PortView.PortType.IN, parent); diff --git a/GameEngine/src/main/java/gameEngine/entites/editorComponents/PortView.java b/GameEngine/src/main/java/gameEngine/entites/editorComponents/PortView.java index f345076..bdda611 100644 --- a/GameEngine/src/main/java/gameEngine/entites/editorComponents/PortView.java +++ b/GameEngine/src/main/java/gameEngine/entites/editorComponents/PortView.java @@ -23,12 +23,12 @@ private boolean dragging = false; public PortView(PortType portType, EditorEntity parent){ - this.lineRenderer = new LineRenderer(Window.resourcePath + "Line.png"); + this.lineRenderer = new LineRenderer(Window.RESOURCE_PATH + "Line.png"); this.parent = parent; if(portType == PortType.IN){ - this.sprite = new Sprite(Window.resourcePath + "InPort.png"); + this.sprite = new Sprite(Window.RESOURCE_PATH + "InPort.png"); } else if(portType == PortType.OUT){ - this.sprite = new Sprite(Window.resourcePath + "OutPort.png"); + this.sprite = new Sprite(Window.RESOURCE_PATH + "OutPort.png"); } this.portType = portType; assert sprite != null; @@ -48,7 +48,7 @@ float mouseY = MouseInput.getY(); if (Input.GetMouseButtonDown(0) && isMouseOver(mouseX, mouseY)) { - EditorScene editorScene = (EditorScene) Window.get().getScene(); + EditorScene editorScene = (EditorScene) Window.getInstance().getScene(); editorScene.connectionManager.handlePortPress(this); dragging = true; } @@ -60,7 +60,7 @@ if (Input.GetMouseButtonUp(0)) { dragging = false; if(isMouseOver(mouseX, mouseY)){ - EditorScene editorScene = (EditorScene) Window.get().getScene(); + EditorScene editorScene = (EditorScene) Window.getInstance().getScene(); editorScene.connectionManager.handlePortRelease(this); } } diff --git a/GameEngine/src/main/java/gameEngine/entites/gameComponents/Collider.java b/GameEngine/src/main/java/gameEngine/entites/gameComponents/Collider.java index e90c85b..d6b924f 100644 --- a/GameEngine/src/main/java/gameEngine/entites/gameComponents/Collider.java +++ b/GameEngine/src/main/java/gameEngine/entites/gameComponents/Collider.java @@ -24,7 +24,7 @@ @Override public void update() { - for (Entity other : Window.get().getScene().entities.values()) { + for (Entity other : Window.getInstance().getScene().entities.values()) { GameObject otherObject = (GameObject) other; if (otherObject == parent) continue; // 自分自身は無視 diff --git a/GameEngine/src/main/java/gameEngine/entites/gameComponents/CopyEntity.java b/GameEngine/src/main/java/gameEngine/entites/gameComponents/CopyEntity.java index 079fd5d..1d8ae16 100644 --- a/GameEngine/src/main/java/gameEngine/entites/gameComponents/CopyEntity.java +++ b/GameEngine/src/main/java/gameEngine/entites/gameComponents/CopyEntity.java @@ -1,6 +1,5 @@ package gameEngine.entites.gameComponents; -import gameEngine.entites.Entity; import gameEngine.entites.GameObject; import gameEngine.input.Input; import gameEngine.views.Window; @@ -9,7 +8,7 @@ public class CopyEntity extends GameComponent{ - Window window = Window.get(); + Window window = Window.getInstance(); private GameObject parent; public CopyEntity(GameObject parent){ this.parent = parent; diff --git a/GameEngine/src/main/java/gameEngine/scenes/EditorScene.java b/GameEngine/src/main/java/gameEngine/scenes/EditorScene.java index 9e025b9..577f041 100644 --- a/GameEngine/src/main/java/gameEngine/scenes/EditorScene.java +++ b/GameEngine/src/main/java/gameEngine/scenes/EditorScene.java @@ -27,7 +27,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); + private Vector3f centerPosition = new Vector3f((float) Window.getInstance().width / 2, (float) Window.getInstance().height / 2, 0); public EditorScene(float windowWidth, float windowHeight){ System.out.println("Active Editor scene"); @@ -36,9 +36,9 @@ this.editorCamera = new Camera("001", Camera.ProjectionType.PERSPECTIVE); this.setCamera(editorCamera); glClearColor(1, 1, 1, 0); - resourceManager.addPath(Window.resourcePath + "empty.png"); - resourceManager.addPath(Window.resourcePath + "enemy1.png"); - resourceManager.addPath(Window.resourcePath + "enemy2.png"); + resourceManager.addPath(Window.RESOURCE_PATH + "empty.png"); + resourceManager.addPath(Window.RESOURCE_PATH + "enemy1.png"); + resourceManager.addPath(Window.RESOURCE_PATH + "enemy2.png"); System.out.println(resourceManager.getPathList()); addCamera(); } diff --git a/GameEngine/src/main/java/gameEngine/views/Button.java b/GameEngine/src/main/java/gameEngine/views/Button.java index a318927..fa90245 100644 --- a/GameEngine/src/main/java/gameEngine/views/Button.java +++ b/GameEngine/src/main/java/gameEngine/views/Button.java @@ -22,17 +22,17 @@ } public Button(float posX, float posY, float scaleX, float scaleY, String text){ - this(posX, posY, new Sprite(Window.resourcePath + "button.png") , new Text(posX + 5.25f, posY- 2.6f, text, 24)); + this(posX, posY, new Sprite(Window.RESOURCE_PATH + "button.png") , new Text(posX + 5.25f, posY- 2.6f, text, 24)); buttonSprite.setScale(scaleX, scaleY); } public Button(float posX, float posY, float scaleX, float scaleY){ - this(posX, posY, new Sprite(Window.resourcePath + "button.png") , new Text(posX + 5.25f, posY - 2.6f, "", 24)); + this(posX, posY, new Sprite(Window.RESOURCE_PATH + "button.png") , new Text(posX + 5.25f, posY - 2.6f, "", 24)); buttonSprite.setScale(scaleX, scaleY); } public Button(){ - this(0,0, new Sprite(Window.resourcePath + "button.png"), new Text(5.25f, -2.6f, "", 24)); + this(0,0, new Sprite(Window.RESOURCE_PATH + "button.png"), new Text(5.25f, -2.6f, "", 24)); } public void update() { diff --git a/GameEngine/src/main/java/gameEngine/views/InputField.java b/GameEngine/src/main/java/gameEngine/views/InputField.java index 7509ae9..b7a78b2 100644 --- a/GameEngine/src/main/java/gameEngine/views/InputField.java +++ b/GameEngine/src/main/java/gameEngine/views/InputField.java @@ -39,7 +39,7 @@ this.showCursor = true; this.cursorBlinkTimer = 0.0f; - this.backgroundSprite = new Sprite(Window.resourcePath + "EditorFrame.png", posX, posY, width, height); + this.backgroundSprite = new Sprite(Window.RESOURCE_PATH + "EditorFrame.png", posX, posY, width, height); this.backgroundSprite.setSize(width, height); displayText = new Text(posX + 2, posY, placeholder, textSize); diff --git a/GameEngine/src/main/java/gameEngine/views/Renderer.java b/GameEngine/src/main/java/gameEngine/views/Renderer.java index cb92c9e..e59dfe0 100644 --- a/GameEngine/src/main/java/gameEngine/views/Renderer.java +++ b/GameEngine/src/main/java/gameEngine/views/Renderer.java @@ -48,7 +48,7 @@ glMatrixMode(GL_PROJECTION); glPushMatrix(); glLoadIdentity(); - glOrtho(0, Window.get().width, Window.get().height, 0, -1000, 1000); + glOrtho(0, Window.getInstance().width, Window.getInstance().height, 0, -1000, 1000); glMatrixMode(GL_MODELVIEW); glPushMatrix(); diff --git a/GameEngine/src/main/java/gameEngine/views/Window.java b/GameEngine/src/main/java/gameEngine/views/Window.java index 12bc56a..434a80d 100644 --- a/GameEngine/src/main/java/gameEngine/views/Window.java +++ b/GameEngine/src/main/java/gameEngine/views/Window.java @@ -18,58 +18,35 @@ import static org.lwjgl.system.MemoryUtil.*; public class Window { - private static Window window; - public static String resourcePath = "GameEngine/resources/"; - private static Scene currentScene; + private static final int DEFAULT_WIDTH = 1200; + private static final int DEFAULT_HEIGHT = 900; + private static final String DEFAULT_TITLE = "PuniPuniGameEngine"; + public static final String RESOURCE_PATH = "GameEngine/resources/"; + + private static Window instance; + private long glfwWindow; public int width; public int height; private String title; - private long glfwWindow; + private static Scene currentScene; private Text fpsText; - private EditorScene editorScene ; - private static boolean playDTRAM = false; + private boolean playDTRAM; private Window() { - this.width = 1200; - this.height = 900; - this.title = "PuniPuniGameEngine"; + this.width = DEFAULT_WIDTH; + this.height = DEFAULT_HEIGHT; + this.title = DEFAULT_TITLE; + this.playDTRAM = false; init(); System.out.println("JVM Version: " + System.getProperty("java.vm.version")); } - public static void changeScene(int newScene) { - switch (newScene) { - case 0: // EditorScene - playDTRAM = false; - if (window.editorScene == null) { - window.editorScene = new EditorScene(window.width, window.height); - } - currentScene = window.editorScene; - break; - case 1: // GameScene - if(currentScene != null && ((EditorScene) currentScene).editorEntities != null){ - EditorScene editorScene = (EditorScene) currentScene; - currentScene = new GameScene(new HashMap<>(editorScene.editorEntities)); - } - else currentScene = new GameScene(); - break; - case 2: //DTRAM Scene - playDTRAM = true; - currentScene = new GameScene(); - break; - default: - assert false : "Unknown Scene [" + newScene + "]"; - break; + public static Window getInstance() { + if (instance == null) { + instance = new Window(); } - } - - public static Window get() { - if (window == null) { - window = new Window(); - } - - return window; + return instance; } public void runFromEditor() { @@ -160,6 +137,32 @@ } } + public static void changeScene(int newScene) { + switch (newScene) { + case 0: // EditorScene + instance.playDTRAM = false; + if (instance.editorScene == null) { + instance.editorScene = new EditorScene(instance.width, instance.height); + } + currentScene = instance.editorScene; + break; + case 1: // GameScene + if(currentScene != null && ((EditorScene) currentScene).editorEntities != null){ + EditorScene editorScene = (EditorScene) currentScene; + currentScene = new GameScene(new HashMap<>(editorScene.editorEntities)); + } + else currentScene = new GameScene(); + break; + case 2: //DTRAM Scene + instance.playDTRAM = true; + currentScene = new GameScene(); + break; + default: + assert false : "Unknown Scene [" + newScene + "]"; + break; + } + } + public Scene getScene(){ return currentScene; } diff --git a/GameEngine/src/main/java/main/Main.java b/GameEngine/src/main/java/main/Main.java index 5059548..62d6071 100644 --- a/GameEngine/src/main/java/main/Main.java +++ b/GameEngine/src/main/java/main/Main.java @@ -4,7 +4,7 @@ public class Main { public static void main(String[] args) { - Window window = Window.get(); + Window window = Window.getInstance(); window.runFromEditor(); } } \ No newline at end of file diff --git a/GameEngine/target/classes/Main.class b/GameEngine/target/classes/Main.class deleted file mode 100644 index be25d30..0000000 --- a/GameEngine/target/classes/Main.class +++ /dev/null Binary files differ diff --git a/GameEngine/target/classes/gameEngine/GameEditor$1.class b/GameEngine/target/classes/gameEngine/GameEditor$1.class deleted file mode 100644 index 95b23fc..0000000 --- a/GameEngine/target/classes/gameEngine/GameEditor$1.class +++ /dev/null Binary files differ diff --git a/GameEngine/target/classes/gameEngine/GameEditor.class b/GameEngine/target/classes/gameEngine/GameEditor.class index fdb3564..d3d421b 100644 --- a/GameEngine/target/classes/gameEngine/GameEditor.class +++ b/GameEngine/target/classes/gameEngine/GameEditor.class Binary files differ diff --git a/GameEngine/target/classes/gameEngine/Time.class b/GameEngine/target/classes/gameEngine/Time.class index f3e77aa..5cf6104 100644 --- a/GameEngine/target/classes/gameEngine/Time.class +++ b/GameEngine/target/classes/gameEngine/Time.class Binary files differ diff --git a/GameEngine/target/classes/gameEngine/entites/Camera$ProjectionType.class b/GameEngine/target/classes/gameEngine/entites/Camera$ProjectionType.class index a7cca13..1aaa774 100644 --- a/GameEngine/target/classes/gameEngine/entites/Camera$ProjectionType.class +++ b/GameEngine/target/classes/gameEngine/entites/Camera$ProjectionType.class Binary files differ diff --git a/GameEngine/target/classes/gameEngine/entites/Camera.class b/GameEngine/target/classes/gameEngine/entites/Camera.class index 4487866..6b024e1 100644 --- a/GameEngine/target/classes/gameEngine/entites/Camera.class +++ b/GameEngine/target/classes/gameEngine/entites/Camera.class Binary files differ diff --git a/GameEngine/target/classes/gameEngine/entites/Entity.class b/GameEngine/target/classes/gameEngine/entites/Entity.class index 842283a..5dd31c0 100644 --- a/GameEngine/target/classes/gameEngine/entites/Entity.class +++ b/GameEngine/target/classes/gameEngine/entites/Entity.class Binary files differ diff --git a/GameEngine/target/classes/gameEngine/entites/GameObject.class b/GameEngine/target/classes/gameEngine/entites/GameObject.class index 92ccdbf..9537f7b 100644 --- a/GameEngine/target/classes/gameEngine/entites/GameObject.class +++ b/GameEngine/target/classes/gameEngine/entites/GameObject.class Binary files differ diff --git a/GameEngine/target/classes/gameEngine/entites/gameComponents/ColorController.class b/GameEngine/target/classes/gameEngine/entites/gameComponents/ColorController.class deleted file mode 100644 index 49d458c..0000000 --- a/GameEngine/target/classes/gameEngine/entites/gameComponents/ColorController.class +++ /dev/null Binary files differ diff --git a/GameEngine/target/classes/gameEngine/entites/gameComponents/CopyEntity.class b/GameEngine/target/classes/gameEngine/entites/gameComponents/CopyEntity.class index f261749..0bd8a12 100644 --- a/GameEngine/target/classes/gameEngine/entites/gameComponents/CopyEntity.class +++ b/GameEngine/target/classes/gameEngine/entites/gameComponents/CopyEntity.class Binary files differ diff --git a/GameEngine/target/classes/gameEngine/entites/gameComponents/GameComponent.class b/GameEngine/target/classes/gameEngine/entites/gameComponents/GameComponent.class index 97fc8f6..d5c0196 100644 --- a/GameEngine/target/classes/gameEngine/entites/gameComponents/GameComponent.class +++ b/GameEngine/target/classes/gameEngine/entites/gameComponents/GameComponent.class Binary files differ diff --git a/GameEngine/target/classes/gameEngine/entites/gameComponents/Mesh$MeshType.class b/GameEngine/target/classes/gameEngine/entites/gameComponents/Mesh$MeshType.class index cd48cf0..5998bdc 100644 --- a/GameEngine/target/classes/gameEngine/entites/gameComponents/Mesh$MeshType.class +++ b/GameEngine/target/classes/gameEngine/entites/gameComponents/Mesh$MeshType.class Binary files differ diff --git a/GameEngine/target/classes/gameEngine/entites/gameComponents/Mesh.class b/GameEngine/target/classes/gameEngine/entites/gameComponents/Mesh.class index 6d52131..e6ecbcf 100644 --- a/GameEngine/target/classes/gameEngine/entites/gameComponents/Mesh.class +++ b/GameEngine/target/classes/gameEngine/entites/gameComponents/Mesh.class Binary files differ diff --git a/GameEngine/target/classes/gameEngine/entites/gameComponents/MoveImage.class b/GameEngine/target/classes/gameEngine/entites/gameComponents/MoveImage.class index 9723626..5e5da88 100644 --- a/GameEngine/target/classes/gameEngine/entites/gameComponents/MoveImage.class +++ b/GameEngine/target/classes/gameEngine/entites/gameComponents/MoveImage.class Binary files differ diff --git a/GameEngine/target/classes/gameEngine/entites/gameComponents/Physics.class b/GameEngine/target/classes/gameEngine/entites/gameComponents/Physics.class index 9337319..2c95333 100644 --- a/GameEngine/target/classes/gameEngine/entites/gameComponents/Physics.class +++ b/GameEngine/target/classes/gameEngine/entites/gameComponents/Physics.class Binary files differ diff --git a/GameEngine/target/classes/gameEngine/input/Input.class b/GameEngine/target/classes/gameEngine/input/Input.class index 0c686a1..de8233c 100644 --- a/GameEngine/target/classes/gameEngine/input/Input.class +++ b/GameEngine/target/classes/gameEngine/input/Input.class Binary files differ diff --git a/GameEngine/target/classes/gameEngine/input/KeyInput.class b/GameEngine/target/classes/gameEngine/input/KeyInput.class index 5218559..d5d0af4 100644 --- a/GameEngine/target/classes/gameEngine/input/KeyInput.class +++ b/GameEngine/target/classes/gameEngine/input/KeyInput.class Binary files differ diff --git a/GameEngine/target/classes/gameEngine/input/MouseInput.class b/GameEngine/target/classes/gameEngine/input/MouseInput.class index 4543bdd..01dd9ae 100644 --- a/GameEngine/target/classes/gameEngine/input/MouseInput.class +++ b/GameEngine/target/classes/gameEngine/input/MouseInput.class Binary files differ diff --git a/GameEngine/target/classes/gameEngine/scenes/EditorScene.class b/GameEngine/target/classes/gameEngine/scenes/EditorScene.class index 67f8037..85384d2 100644 --- a/GameEngine/target/classes/gameEngine/scenes/EditorScene.class +++ b/GameEngine/target/classes/gameEngine/scenes/EditorScene.class Binary files differ diff --git a/GameEngine/target/classes/gameEngine/scenes/GameScene.class b/GameEngine/target/classes/gameEngine/scenes/GameScene.class index 6996578..79701fa 100644 --- a/GameEngine/target/classes/gameEngine/scenes/GameScene.class +++ b/GameEngine/target/classes/gameEngine/scenes/GameScene.class Binary files differ diff --git a/GameEngine/target/classes/gameEngine/scenes/Scene.class b/GameEngine/target/classes/gameEngine/scenes/Scene.class index 3ba1de3..0cf5df5 100644 --- a/GameEngine/target/classes/gameEngine/scenes/Scene.class +++ b/GameEngine/target/classes/gameEngine/scenes/Scene.class Binary files differ diff --git a/GameEngine/target/classes/gameEngine/views/Color.class b/GameEngine/target/classes/gameEngine/views/Color.class index 6e2b3e9..5fb1170 100644 --- a/GameEngine/target/classes/gameEngine/views/Color.class +++ b/GameEngine/target/classes/gameEngine/views/Color.class Binary files differ diff --git a/GameEngine/target/classes/gameEngine/views/Texture.class b/GameEngine/target/classes/gameEngine/views/Texture.class index ea7e64e..cb5fcbf 100644 --- a/GameEngine/target/classes/gameEngine/views/Texture.class +++ b/GameEngine/target/classes/gameEngine/views/Texture.class Binary files differ diff --git a/GameEngine/target/classes/gameEngine/views/Window.class b/GameEngine/target/classes/gameEngine/views/Window.class index 7191727..25d1756 100644 --- a/GameEngine/target/classes/gameEngine/views/Window.class +++ b/GameEngine/target/classes/gameEngine/views/Window.class Binary files differ