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>
This commit is contained in:
parent
d6b17fce95
commit
5e97719ccf
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…
x
Reference in New Issue
Block a user