com.jme.app
Class VariableTimestepGame

java.lang.Object
  extended bycom.jme.app.AbstractGame
      extended bycom.jme.app.VariableTimestepGame
Direct Known Subclasses:
RenParticleEditor, TestFadeInOutTransientEffect

public abstract class VariableTimestepGame
extends AbstractGame

VariableTimestepGame implements a very simple loop, updating game logic and rendering as fast as hardware permits. To compensate for the variable framerate, every frame the update method is passed the amount of elapsed time, in seconds, since the previous update. The game should execute the logic based on the time elapsed.

Version:
$Id: VariableTimestepGame.java,v 1.10 2004/10/14 01:23:11 mojomonkey Exp $
Author:
Eric Woroshow

Field Summary
 
Fields inherited from class com.jme.app.AbstractGame
ALWAYS_SHOW_PROPS_DIALOG, display, finished, FIRSTRUN_OR_NOCONFIGFILE_SHOW_PROPS_DIALOG, NEVER_SHOW_PROPS_DIALOG, properties
 
Constructor Summary
VariableTimestepGame()
           
 
Method Summary
protected abstract  void cleanup()
          cleanup cleans up any created objects before exiting the application.
 float getFramesPerSecond()
          getFramesPerSecond gets the current frame rate.
protected abstract  void initGame()
          initGame creates and initializes all game data required for startup.
protected abstract  void initSystem()
          initSystem creates all the necessary system components for the client application.
protected  void quit()
          Quits the program abruptly using System.exit.
protected abstract  void reinit()
          reinit rebuilds the subsystems.
protected abstract  void render(float interpolation)
          render displays the game information to the OpenGL context.
 void start()
          Renders and updates logic as fast as possible, but keeps track of time elapsed between frames.
protected abstract  void update(float deltaTime)
          update updates the game state.
 
Methods inherited from class com.jme.app.AbstractGame
assertDisplayCreated, finish, getAttributes, getVersion, setDialogBehaviour, setDialogBehaviour, setDialogBehaviour
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

VariableTimestepGame

public VariableTimestepGame()
Method Detail

getFramesPerSecond

public float getFramesPerSecond()
getFramesPerSecond gets the current frame rate.

Returns:
the current number of frames rendering per second

start

public final void start()
Renders and updates logic as fast as possible, but keeps track of time elapsed between frames.

Specified by:
start in class AbstractGame

quit

protected void quit()
Quits the program abruptly using System.exit.

Specified by:
quit in class AbstractGame
See Also:
AbstractGame.quit()

update

protected abstract void update(float deltaTime)
Description copied from class: AbstractGame
update updates the game state. Physics, AI, networking, score checking and like should be completed in this method. How often and when this method is called depends on the main loop implementation.

Specified by:
update in class AbstractGame
Parameters:
deltaTime - the time elapsed since the last frame, in seconds
See Also:
AbstractGame.update(float interpolation)

render

protected abstract void render(float interpolation)
Description copied from class: AbstractGame
render displays the game information to the OpenGL context. Nothing altering the game state should be run during a render. How often and when this method is called depends on the main loop implementation.

Specified by:
render in class AbstractGame
Parameters:
interpolation - unused in this implementation
See Also:
AbstractGame.render(float interpolation)

initSystem

protected abstract void initSystem()
Description copied from class: AbstractGame
initSystem creates all the necessary system components for the client application. It is is called once after start is called. The display must be initialized within this method.

Specified by:
initSystem in class AbstractGame
See Also:
AbstractGame.initSystem()

initGame

protected abstract void initGame()
Description copied from class: AbstractGame
initGame creates and initializes all game data required for startup. It is suggested that caching of frequently used resources is done within this method. It is called once after initSystem has completed.

Specified by:
initGame in class AbstractGame
See Also:
AbstractGame.initGame()

reinit

protected abstract void reinit()
Description copied from class: AbstractGame
reinit rebuilds the subsystems. It may be called at any time by the client application.

Specified by:
reinit in class AbstractGame
See Also:
AbstractGame.reinit()

cleanup

protected abstract void cleanup()
Description copied from class: AbstractGame
cleanup cleans up any created objects before exiting the application. It is called once after finish is called.

Specified by:
cleanup in class AbstractGame
See Also:
AbstractGame.cleanup()