hi.
ich habe folgendes projekt:
mien problem ist. ich würde diesen "MAM PFI" gerne über tastatur steuern können. und habe dafür den ansatz mit dem keylistener usw. (ganz unten) aber es funktioniert nicht. kann mit jemand sagen wo der fehler ist und was ich anders machen muss?
danke schon mal
greez little__beatle
ich habe folgendes projekt:
Code:
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.KeyAdapter;
import org.eclipse.swt.events.KeyAdapter;
public class MAMPFI implements KeyListener
{
//Attribute
int positionX;
int positionY;
boolean verwundbar;
enum Blickrichtung
{S,O,N,W}
Blickrichtung blickrichtung;
// Referenzattribute
MAMPFISYMBOL symbol;
LABYRINTH labyrinth;
//BESTENLISTE bestenliste;
// Konstruktor für Objekte der Klasse MAMPFI
MAMPFI ()
{
//Die Position kann mangels Labyrinth noch nicht festgelegt werden
verwundbar = true;
blickrichtung = Blickrichtung.N;
//bestenliste = new BESTENLISTE();
labyrinth = new LABYRINTH();
symbol = new MAMPFISYMBOL() ;
symbol.RadiusSetzen(50);
symbol.StartWinkelSetzen(120);
symbol.BogenWinkelSetzen(300);
symbol.BogenArtSetzen(2);
symbol.FuellFarbeSetzen("gelb");
labyrinth.GaengeErstellen(2,2);
addKeyListener(this);
}
//Methode
void NachOstenBlicken()
{
blickrichtung=Blickrichtung.O;
symbol.StartWinkelSetzen(30);
}
void NachSuedenBlicken()
{
blickrichtung=Blickrichtung.S;
symbol.StartWinkelSetzen(300);
}
void NachWestenBlicken()
{
blickrichtung=Blickrichtung.W;
symbol.StartWinkelSetzen(210);
}
void NachNordenBlicken()
{
blickrichtung=Blickrichtung.N;
symbol.StartWinkelSetzen(120);
}
void VerwundbarSetzen(boolean verwundbarNeu)
{
verwundbar=verwundbarNeu;
if(verwundbar==true)
{
symbol.FuellFarbeSetzen("gelb");
}
else
{ symbol.FuellFarbeSetzen("blau");
}
}
void rechtsDrehen()
{ switch(blickrichtung)
{case N:
NachOstenBlicken();
break;
case S:
NachWestenBlicken();
break ;
case O:
NachSuedenBlicken();
break;
case W:
NachNordenBlicken();
break;}}
void linksDrehen()
{switch (blickrichtung)
{case N:
NachWestenBlicken();
break;
case O:
NachNordenBlicken();
break;
case S:
NachOstenBlicken();
break;
case W:
NachSuedenBlicken();
break;
}}
private void NachNordenGehen()
{
if (positionY>0)
{labyrinth.mauerSetzen(positionX,positionY-1);
if(labyrinth.mauer==false)
{
positionY=positionY-1;
symbol.PositionYSetzen(positionY);
NachNordenBlicken();}
}
}
void Oben()
{
if (positionY>0)
{labyrinth.mauerSetzen(positionX,positionY-1);
if(labyrinth.mauer==false)
{
positionY=positionY-1;
symbol.PositionYSetzen(positionY);
NachNordenBlicken();}
}
}
private void NachOstenGehen()
{
if (positionX<10-1)
{labyrinth.mauerSetzen(positionX+1,positionY);
{ if(labyrinth.mauer==false)
positionX=positionX+1;
symbol.PositionXSetzen(positionX);
NachOstenBlicken();}
}}
void Rechts()
{
if (positionX<10-1)
{labyrinth.mauerSetzen(positionX+1,positionY);
{ if(labyrinth.mauer==false)
positionX=positionX+1;
symbol.PositionXSetzen(positionX);
NachOstenBlicken();}
}}
private void NachSuedenGehen()
{
if (positionY<10-1)
{labyrinth.mauerSetzen(positionX,positionY+1);
if(labyrinth.mauer==false)
{positionY=positionY+1;
symbol.PositionYSetzen(positionY);
NachSuedenBlicken();}
}
}
void Unten()
{
if (positionY<10-1)
{labyrinth.mauerSetzen(positionX,positionY+1);
if(labyrinth.mauer==false)
{positionY=positionY+1;
symbol.PositionYSetzen(positionY);
NachSuedenBlicken();}
}
}
private void NachWestenGehen()
{
if (positionX>0)
{ labyrinth.mauerSetzen(positionX-1,positionY);
if(labyrinth.mauer==false)
{positionX=positionX-1;
symbol.PositionXSetzen(positionX);
NachWestenBlicken();}
}
}
void Links()
{
if (positionX>0)
{ labyrinth.mauerSetzen(positionX-1,positionY);
if(labyrinth.mauer==false)
{positionX=positionX-1;
symbol.PositionXSetzen(positionX);
NachWestenBlicken();}
}
}
void VorwaertsGehen()
{
{switch (blickrichtung)
{case N:
NachNordenGehen();
break;
case O:
NachOstenGehen();
break;
case S:
NachSuedenGehen();
break;
case W:
NachWestenGehen();
break;
}}}
public void keyPressed(KeyEvent e)
{
switch (e.getKeyCode())
{
case KeyEvent.VK_DOWN:
{
NachSuedenGehen();
break;
}
case KeyEvent.VK_UP:
{
NachNordenGehen();
break;
}
case KeyEvent.VK_RIGHT:
{
NachOstenGehen();
break;
}
case KeyEvent.VK_LEFT:
{
NachWestenGehen();
break;
}
}
}});
public void keyReleased(KeyEvent e) {}
public void keyTyped(KeyEvent e) {}
}
mien problem ist. ich würde diesen "MAM PFI" gerne über tastatur steuern können. und habe dafür den ansatz mit dem keylistener usw. (ganz unten) aber es funktioniert nicht. kann mit jemand sagen wo der fehler ist und was ich anders machen muss?
danke schon mal
greez little__beatle