Timing of loop is now based on accumulated time

Co-authored-by: r3cp3ct <45179536+r3cp3ct@users.noreply.github.com>
Co-authored-by: sigonasr2 <sigonasr2@gmail.com>
main
sigonasr2, Sig, Sigo 3 years ago committed by GitHub
parent d6b17fce95
commit 5e97719ccf
  1. BIN
      bin/RabiClone.jar
  2. 63
      src/sig/RabiClone.java

Binary file not shown.

@ -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;
}
}
}

Loading…
Cancel
Save