diff --git a/.classpath b/.classpath deleted file mode 100644 index fceb480..0000000 --- a/.classpath +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/.gitignore b/.gitignore index b1f3107..9594c45 100644 --- a/.gitignore +++ b/.gitignore @@ -61,3 +61,8 @@ $RECYCLE.BIN/ # Windows shortcuts *.lnk +/bin/ + +.classpath + +.settings/org.eclipse.jdt.core.prefs diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index 3a21537..0000000 --- a/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,11 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 -org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=1.8 -org.eclipse.jdt.core.compiler.debug.lineNumber=generate -org.eclipse.jdt.core.compiler.debug.localVariable=generate -org.eclipse.jdt.core.compiler.debug.sourceFile=generate -org.eclipse.jdt.core.compiler.problem.assertIdentifier=error -org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.source=1.8 diff --git a/src/diveengine2d/Engine.java b/src/diveengine2d/Engine.java index 933ec31..6953223 100644 --- a/src/diveengine2d/Engine.java +++ b/src/diveengine2d/Engine.java @@ -7,6 +7,7 @@ import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.image.BufferStrategy; import java.io.File; +import java.nio.charset.Charset; import java.nio.file.Files; import java.nio.file.Paths; import java.util.List; @@ -57,11 +58,14 @@ public class Engine extends Canvas { frame.pack(); frame.setVisible(true); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - + this.requestFocus(); + this.addKeyListener(new Input()); + createBufferStrategy(2); bs = getBufferStrategy(); while(true) { + updateScene(); repaint(); try{ Thread.sleep(17); @@ -71,17 +75,21 @@ public class Engine extends Canvas { } } + + private void updateScene() { + SceneManager.updateAll(); + } private void loadConfig() throws Exception { File configFile = null; try { - configFile = new File(gameFolder + "\\build.config"); + configFile = new File(gameFolder + File.separatorChar + "build.config"); } catch (Exception e) { throw new Exception("Configuration File not found"); } - List lines = Files.readAllLines(Paths.get(gameFolder, "build.config")); + List lines = Files.readAllLines(Paths.get(gameFolder, "build.config"), Charset.forName("UTF-8")); for (String line : lines) { diff --git a/src/diveengine2d/Input.java b/src/diveengine2d/Input.java new file mode 100644 index 0000000..c8721ea --- /dev/null +++ b/src/diveengine2d/Input.java @@ -0,0 +1,39 @@ +package diveengine2d; + +import java.awt.event.KeyEvent; +import java.awt.event.KeyListener; +import java.util.ArrayList; +import java.util.List; + +public class Input implements KeyListener{ + + private static boolean[] keys = new boolean[512]; + private static List listeners = new ArrayList(); + + public static void addKeyListener(KeyListener listener) { + listeners.add(listener); + } + + public static boolean getKeyDown(int keyCode) { + return keys[keyCode]; + } + + public static boolean getKeyUp(int keyCode) { + return !keys[keyCode]; + } + + @Override + public void keyTyped(KeyEvent e) {} + + @Override + public void keyPressed(KeyEvent e) { + keys[e.getKeyCode()] = true; + for(KeyListener l : listeners) l.keyPressed(e); + } + + @Override + public void keyReleased(KeyEvent e) { + keys[e.getKeyCode()] = false; + for(KeyListener l : listeners) l.keyReleased(e); + } +} diff --git a/src/diveengine2d/RigidBody.java b/src/diveengine2d/RigidBody.java new file mode 100644 index 0000000..7044f97 --- /dev/null +++ b/src/diveengine2d/RigidBody.java @@ -0,0 +1,8 @@ +package diveengine2d; + +public class RigidBody extends DiveScript{ + + public void update() { + + } +} diff --git a/src/diveengine2d/SceneManager.java b/src/diveengine2d/SceneManager.java index e1612c2..827c81f 100644 --- a/src/diveengine2d/SceneManager.java +++ b/src/diveengine2d/SceneManager.java @@ -1,6 +1,7 @@ package diveengine2d; import java.awt.Color; import java.awt.Graphics2D; +import java.nio.charset.Charset; import java.nio.file.Files; import java.nio.file.Paths; import java.util.ArrayList; @@ -18,7 +19,7 @@ public class SceneManager { public static boolean loadScene(String scene) { synchronized(entities) { try{ - List lines = Files.readAllLines(Paths.get(Engine.gameFolder, scene + ".scene")); + List lines = Files.readAllLines(Paths.get(Engine.gameFolder, scene + ".scene"), Charset.forName("UTF-8")); Stack scopeObject = new Stack(); for (String line : lines) { //System.out.println(line); @@ -152,4 +153,12 @@ public class SceneManager { } } } + + public static void updateAll() { + for(Entity e : entities) { + for(DiveScript script : e.components) { + script.update(); + } + } + } }