Morten Olsson wrote:
> Mit spørgsmål er simpelt: hvorledes håndterer jeg bedst keyboard input mens
> min applet kører ? jeg skulle gerne være i stand til
> at registrere hvornår en bestemt tast trykkes ned, og hvornår den slippes
> etc...
Du kan evt lade det enkelte Sprite objekt håndtere hvordan den styres. Vi kan
kalde den UserControlledSprite og definere den således:
class KeyboardControlledSprite implements Keylistener
{
private int x, y;
UserControlledSprite( Component component )
{
component.addKeyListener( this );
}
public void keyPressed( KeyEvent e )
{
if( e is up-arrow )
{
y--;
}
etc
}
public void draw( Graphics g )
{
tegn denne sprite på x, y
}
}
Du kan lave "flydende" bevægelser (som ikke kræver at du taster, hver gang et
Sprite objekt skal
flyttes en enhed) ved at bruge State mønsteret:
class MovingUpwards implements State
{
private int length;
MovingUpwards( int length )
{
this.length = length;
}
public void update( Sprite sprite )
{
if( --length == 0 )
{
//dræb denne tilstand
sprite.nextState();
}
else
{
sprite.moveOneUnitUp():
}
}
}
eller noget i den retning..
Ulrik Magnusson
--
"Somewhere in here I was born and there I died. It was only
a moment for you; you took no notice"
'Madeleine' in Vertigo, Hitchcock 1958
Visit my home page:
http://www.geocities.com/ulrikm