diff --git a/bin/RabiClone.jar b/bin/RabiClone.jar index 96cf330..7f872cd 100644 Binary files a/bin/RabiClone.jar and b/bin/RabiClone.jar differ diff --git a/src/sig/RabiClone.java b/src/sig/RabiClone.java index 8f3ff4c..2936810 100644 --- a/src/sig/RabiClone.java +++ b/src/sig/RabiClone.java @@ -84,48 +84,55 @@ public class RabiClone{ p.render(); long lastGameTime = System.nanoTime(); + long dt = 0; CONTROLLERS = ControllerEnvironment.getDefaultEnvironment().getControllers(); while (true) { - long timePassed = System.nanoTime()-lastGameTime; + dt += System.nanoTime()-lastGameTime; lastGameTime=System.nanoTime(); - double updateMult = Math.min(1/120d,timePassed/1000000000d); - handleGameControllers(); + while (dt>=(1/244d)*1000000000) { + double updateMult = 1/244d; + handleGameControllers(); - KeyBind.poll(); + KeyBind.poll(); - if (Key.isKeyHeld(KeyEvent.VK_F1)) { - if (level_renderer instanceof EditorRenderer) { - OBJ.remove(level_renderer); - OBJ.add(level_renderer=new LevelRenderer(p)); - StartGame(); + if (Key.isKeyHeld(KeyEvent.VK_F1)) { + if (level_renderer instanceof EditorRenderer) { + OBJ.remove(level_renderer); + OBJ.add(level_renderer=new LevelRenderer(p)); + StartGame(); + } } - } - if (Key.isKeyHeld(KeyEvent.VK_F2)) { - if (!(level_renderer instanceof EditorRenderer)) { + if (Key.isKeyHeld(KeyEvent.VK_F2)) { + if (!(level_renderer instanceof EditorRenderer)) { + OBJ.clear(); + ResetGame(); + OBJ.add(level_renderer=new EditorRenderer(p)); + } + } + if (Key.isKeyHeld(KeyEvent.VK_F3)) { OBJ.clear(); ResetGame(); - OBJ.add(level_renderer=new EditorRenderer(p)); + OBJ.add(control_settings_menu=new ConfigureControls(p)); + } + if (Key.isKeyHeld(KeyEvent.VK_F5)&&System.currentTimeMillis()-lastControllerScan>5000) { + CONTROLLERS=ControllerEnvironment.getDefaultEnvironment().rescanControllers(); + System.out.println(Arrays.toString(CONTROLLERS)); + lastControllerScan=System.currentTimeMillis(); } - } - if (Key.isKeyHeld(KeyEvent.VK_F3)) { - OBJ.clear(); - ResetGame(); - OBJ.add(control_settings_menu=new ConfigureControls(p)); - } - if (Key.isKeyHeld(KeyEvent.VK_F5)&&System.currentTimeMillis()-lastControllerScan>5000) { - CONTROLLERS=ControllerEnvironment.getDefaultEnvironment().rescanControllers(); - System.out.println(Arrays.toString(CONTROLLERS)); - lastControllerScan=System.currentTimeMillis(); - } - for (int i=0;i<OBJ.size();i++) { - OBJ.get(i).update(updateMult); - if (OBJ.get(i).isMarkedForDeletion()) { - OBJ.remove(i--); + for (int i=0;i<OBJ.size();i++) { + OBJ.get(i).update(updateMult); + if (OBJ.get(i).isMarkedForDeletion()) { + OBJ.remove(i--); + } } + dt-=(1/244d)*1000000000; + } + if (dt<0) { + dt=0; } } }