Chapter 19. Animated 3D Sprites


Updating the Alien Sprite

TimeBehavior acts as a Timer-like object for calling the update( ) method in AlienSprite every 500 milliseconds. The two are linked together by WrapTour3D in its addAlien( ) method:

     private void addAlien( )     {       AlienSprite al =  new AlienSprite("hand1.obj", obs, bob);   // alien       al.setPosition(-6.0, -6.0);       sceneBG.addChild( al.getTG( ) );       TimeBehavior alienTimer = new TimeBehavior(500, al);  // alien's controls       alienTimer.setSchedulingBounds( bounds );       sceneBG.addChild( alienTimer );     }

The TimeBehavior class is simpler than TouristControls since its processStimulus( ) method being called is enough to trigger the call to update( ):

     public class TimeBehavior extends Behavior     {       private WakeupCondition timeOut;       private AlienSprite alien;       public TimeBehavior(int timeDelay, AlienSprite as)       { alien = as;         timeOut = new WakeupOnElapsedTime(timeDelay);       }       public void initialize( )       { wakeupOn( timeOut );  }       public void processStimulus( Enumeration criteria )       { alien.update( );      // ignore criteria         wakeupOn( timeOut ); // re-register       }     }

The wakeup criterion is an instance of WakeupOnElapsedTime.



Killer Game Programming in Java
Killer Game Programming in Java
ISBN: 0596007302
EAN: 2147483647
Year: 2006
Pages: 340

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net