frames passed / time taken to execute those frames = fps.
This is how I always understood it.
speed = distance / time.
I assume this is correct.
163ticks / 5 seconds = 32.6fps.
Right or wrong?
I'm using Sun's timer which is updated in 1.5(Tiger).
It can now be run as a daemon.
This is how I execute my game logic.
Timer class:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
| public class GameIntervalTimer extends TimerTask { private Timer timer; private boolean isConditionMet; public GameIntervalTimer(String nameOfThread, long periodOfExecution) { try { timer = new Timer(nameOfThread, true); timer.scheduleAtFixedRate(this, 0L, periodOfExecution); }catch(Exception e) { System.out.println(e.getMessage()); } isConditionMet = false; }
public void run() { this.isConditionMet = true; } public void resetTimeToExecute() { this.isConditionMet = false; } public void setTimerRateOfExecution( long periodOfExecution ) { this.timer.scheduleAtFixedRate(this, 0L, periodOfExecution); } public boolean isConditionMet() { return this.isConditionMet; } } |
How it's used:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| timer = new GameIntervalTimer("Logic", 10);
if(timer.isConditionMet()) { playerMadeTurn = true; if(playerMadeTurn) { play.executeLogic(); playerMadeTurn = false; } System.out.println("executed " + ticks++); timer.resetTimeToExecute(); }
|