m3g11
Class AnimationSample

java.lang.Object
  extended by javax.microedition.lcdui.Displayable
      extended by javax.microedition.lcdui.Canvas
          extended by javax.microedition.lcdui.game.GameCanvas
              extended by m3g11.AnimationSample
All Implemented Interfaces:
java.lang.Runnable, Sample

public class AnimationSample
extends javax.microedition.lcdui.game.GameCanvas
implements Sample, java.lang.Runnable

Simple animation with different interpolation modes.

Author:
Claus Hoefele

Field Summary
private  javax.microedition.m3g.AnimationController animationController
          Controls animation speed.
private  int currentMode
          Current interpolation mode.
private  javax.microedition.lcdui.Graphics graphics
          2D graphics singleton used for rendering.
private  javax.microedition.m3g.Graphics3D graphics3d
          3D graphics singleton used for rendering.
private static int INTERPOLATION_LINEAR
          Linear interpolation of keyframe values.
private static int INTERPOLATION_SPLINE
          Spline interpolation of keyframe values.
private static int INTERPOLATION_STEP
          Steps through keyframe values.
private  boolean isRunning
          Flag whether thread is running.
private  int lastKey
          Stores the last game action key.
private  javax.microedition.m3g.Mesh mesh
          Mesh for display.
private  javax.microedition.m3g.Transform meshTransform
          The mesh's transformation.
private static int NUMBER_OF_INTERPOLATIONS
          Number of interpolation modes.
 
Fields inherited from class javax.microedition.lcdui.game.GameCanvas
DOWN_PRESSED, FIRE_PRESSED, GAME_A_PRESSED, GAME_B_PRESSED, GAME_C_PRESSED, GAME_D_PRESSED, LEFT_PRESSED, RIGHT_PRESSED, UP_PRESSED
 
Fields inherited from class javax.microedition.lcdui.Canvas
DOWN, FIRE, GAME_A, GAME_B, GAME_C, GAME_D, KEY_NUM0, KEY_NUM1, KEY_NUM2, KEY_NUM3, KEY_NUM4, KEY_NUM5, KEY_NUM6, KEY_NUM7, KEY_NUM8, KEY_NUM9, KEY_POUND, KEY_STAR, LEFT, RIGHT, UP
 
Constructor Summary
AnimationSample()
          Constructor.
 
Method Summary
private  void checkKeys(int worldTime)
          Processes key presses.
private  void createAnimation(javax.microedition.m3g.Mesh mesh, int interpolationMode, javax.microedition.m3g.AnimationController controller)
          Animates the translation component of the given mesh.
 void destroy()
          Destroys the sample.
private  void drawMenu(javax.microedition.lcdui.Graphics graphics)
          Draws a menu for the current key assignments.
 void init()
          Initializes the sample.
protected  void keyPressed(int keyCode)
          Receives key presses.
private  void render(javax.microedition.lcdui.Graphics graphics)
          Renders the sample.
private  void reset()
          Initializes the sample.
 void run()
          Animation loop.
private  void toggleSpeed(javax.microedition.m3g.AnimationController animationController, int worldTime)
          Toggles animation between slow, fast, and reverse speed.
 
Methods inherited from class javax.microedition.lcdui.game.GameCanvas
flushGraphics, flushGraphics, getGraphics, getKeyStates, paint
 
Methods inherited from class javax.microedition.lcdui.Canvas
getGameAction, getKeyCode, getKeyName, hasPointerEvents, hasPointerMotionEvents, hasRepeatEvents, hideNotify, isDoubleBuffered, keyReleased, keyRepeated, pointerDragged, pointerPressed, pointerReleased, repaint, repaint, serviceRepaints, setCommandListener, setFullScreenMode, showNotify, sizeChanged
 
Methods inherited from class javax.microedition.lcdui.Displayable
addCommand, getHeight, getTicker, getTitle, getWidth, isShown, removeCommand, setTicker, setTitle
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

mesh

private javax.microedition.m3g.Mesh mesh
Mesh for display.


meshTransform

private javax.microedition.m3g.Transform meshTransform
The mesh's transformation.


isRunning

private boolean isRunning
Flag whether thread is running.


lastKey

private int lastKey
Stores the last game action key.


INTERPOLATION_STEP

private static final int INTERPOLATION_STEP
Steps through keyframe values.

See Also:
Constant Field Values

INTERPOLATION_LINEAR

private static final int INTERPOLATION_LINEAR
Linear interpolation of keyframe values.

See Also:
Constant Field Values

INTERPOLATION_SPLINE

private static final int INTERPOLATION_SPLINE
Spline interpolation of keyframe values.

See Also:
Constant Field Values

NUMBER_OF_INTERPOLATIONS

private static final int NUMBER_OF_INTERPOLATIONS
Number of interpolation modes.

See Also:
Constant Field Values

currentMode

private int currentMode
Current interpolation mode.


animationController

private javax.microedition.m3g.AnimationController animationController
Controls animation speed.


graphics3d

private javax.microedition.m3g.Graphics3D graphics3d
3D graphics singleton used for rendering.


graphics

private javax.microedition.lcdui.Graphics graphics
2D graphics singleton used for rendering.

Constructor Detail

AnimationSample

public AnimationSample()
Constructor.

Method Detail

init

public void init()
Initializes the sample.

Specified by:
init in interface Sample

reset

private void reset()
Initializes the sample.


destroy

public void destroy()
Destroys the sample.

Specified by:
destroy in interface Sample

run

public void run()
Animation loop.

Specified by:
run in interface java.lang.Runnable

keyPressed

protected void keyPressed(int keyCode)
Receives key presses.

Overrides:
keyPressed in class javax.microedition.lcdui.Canvas
Parameters:
keyCode - key code.

checkKeys

private void checkKeys(int worldTime)
Processes key presses.

Parameters:
worldTime - current world time.

createAnimation

private void createAnimation(javax.microedition.m3g.Mesh mesh,
                             int interpolationMode,
                             javax.microedition.m3g.AnimationController controller)
Animates the translation component of the given mesh.

Parameters:
mesh - mesh for animation.
interpolationMode - interpolation mode.
controller - animation controller.

toggleSpeed

private void toggleSpeed(javax.microedition.m3g.AnimationController animationController,
                         int worldTime)
Toggles animation between slow, fast, and reverse speed.

Parameters:
animationController - controller for animation.
worldTime - current world time.

render

private void render(javax.microedition.lcdui.Graphics graphics)
Renders the sample.

Parameters:
graphics - graphics context for drawing.

drawMenu

private void drawMenu(javax.microedition.lcdui.Graphics graphics)
Draws a menu for the current key assignments.

Parameters:
graphics - graphics context for drawing.