Hi,
ich bin gerade dabei etwas über die Java-GUI zu lernen und arbeite deswegen das Buch "Java will nur spielen" durch. Dabei wird als erstes Spiel Frogger nachprogrammiert. Wenn ich nach dem Code im Buch gehe, klappt auch alles ganz gut. Jetzt versuche ich gerade das etwas zu erweitern und habe Buttons gemacht, die bei Knopfdruck das Spiel leichter bzw schwerer machen.
Solange ich die Buttons nicht drücke klappt alles problemlos, wenn ich aber einmal auf einen Button klicke, reagiert der KeyListener nicht mehr. Ich hab unten mal das Code-Snippet mit den Listenern angegeben, wenn ihr mehr Informationen braucht, einfach melden.
[JAVA=56]addKeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent e)
{
switch(e.getKeyCode())
{
case VK_LEFT: frog.getDeltaPos().addMod(new Vertex(-1,0));
break;
case VK_RIGHT: frog.getDeltaPos().addMod(new Vertex(1,0));
break;
case VK_UP: frog.getPos().addMod(new Vertex(0, -TRACK_HEIGHT));
break;
case VK_DOWN: frog.getPos().addMod(new Vertex(0, TRACK_HEIGHT));
break;
case VK_SPACE: frog.setDeltaPos(new Vertex(0,0));
break;
}
}
});
metaPanel.add(increaseDiff);
increaseDiff.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent arg0) {
if(minSpace >= 20) minSpace -= 20;
if(maxSpace >= 20) maxSpace -= 20;
reset();
}
});
metaPanel.add(decreaseDiff);
decreaseDiff.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
minSpace += 20;
maxSpace += 20;
reset();
}
});
[/code]
increaseDiff und decreaseDiff sind dabei die Buttons, die hab ich zusammen mit Countern für Erfolg und überfahrenwerden in einem extra Panel gruppiert.
Hab ich bei der Implementation irgendwas übersehen?
ich bin gerade dabei etwas über die Java-GUI zu lernen und arbeite deswegen das Buch "Java will nur spielen" durch. Dabei wird als erstes Spiel Frogger nachprogrammiert. Wenn ich nach dem Code im Buch gehe, klappt auch alles ganz gut. Jetzt versuche ich gerade das etwas zu erweitern und habe Buttons gemacht, die bei Knopfdruck das Spiel leichter bzw schwerer machen.
Solange ich die Buttons nicht drücke klappt alles problemlos, wenn ich aber einmal auf einen Button klicke, reagiert der KeyListener nicht mehr. Ich hab unten mal das Code-Snippet mit den Listenern angegeben, wenn ihr mehr Informationen braucht, einfach melden.
[JAVA=56]addKeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent e)
{
switch(e.getKeyCode())
{
case VK_LEFT: frog.getDeltaPos().addMod(new Vertex(-1,0));
break;
case VK_RIGHT: frog.getDeltaPos().addMod(new Vertex(1,0));
break;
case VK_UP: frog.getPos().addMod(new Vertex(0, -TRACK_HEIGHT));
break;
case VK_DOWN: frog.getPos().addMod(new Vertex(0, TRACK_HEIGHT));
break;
case VK_SPACE: frog.setDeltaPos(new Vertex(0,0));
break;
}
}
});
metaPanel.add(increaseDiff);
increaseDiff.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent arg0) {
if(minSpace >= 20) minSpace -= 20;
if(maxSpace >= 20) maxSpace -= 20;
reset();
}
});
metaPanel.add(decreaseDiff);
decreaseDiff.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
minSpace += 20;
maxSpace += 20;
reset();
}
});
[/code]
increaseDiff und decreaseDiff sind dabei die Buttons, die hab ich zusammen mit Countern für Erfolg und überfahrenwerden in einem extra Panel gruppiert.
Hab ich bei der Implementation irgendwas übersehen?