G
Guest
Gast
Ich möchte ein kleines Spiel programmieren in welchem ich mit einem Raumschiff umherfliegen kann und Asteroiden zerschiessen muss!
2 Dimensional!
Mit Hilfe meines Mathe LK Wissens etc konnte ich bereits ein Raumschiff erstellen mit dem man hin und herfliegen kann(Sinus Cosinus Tangengs und davon die Umkehrfunktionen zu kennen ist garnichtmal so verkehrt).
Nun gibt es folgende Tastenbelegung:
Pfeiltasten:
Links=Raumschiff nach links drehen
Rechts=Raumschiff nach rechts drehen
Oben=Beschleunigen
Unten=Abbremsen
Soweit hat auch alles geklappt! Double Buffering, Paint, Update Methoden überschrieben.
Hier rumgewurschtelt da rtumgewurschtelt...
Nun hab ich eine 25fps machende nette kleine Anwendung mit der man so wie es sein soll umherfliegen kann
Nur bei der Eingabe durch den Keylistener haperts!
Erstmal mein Code:
Ich denke das geübte Auge wird mit meinen Beschriftungen oben zurechtkommen! "KeyPressed" startet die Aktionen, welche daraufhin woanders in einem Thread solange ausgeführt werden bis das "KeyReleased"-Event den Thread stoppt!
Folgender Effekt tritt auf:
Wenn ich einzeln hintereinander die Tasten <- und -> drücke klappt es wunderbar!
Wenn ich jedoch beide Tasten drücke und eine davon loslasse gibt es eine kleine Verzögerung bevor die andere Taste zu wirken beginnt... dies passiert auch wenn ich ganz schnell abwechselnd <- und -> drücke.
Wenn ich 3 Tasten drücke klappt das auch noch nicht so ganz..
PS: Was ist eigentlich der gamelistener? Google will mir iwie nicht sagen ob ich damit mein Problem lösen kann...und hier im Forum gibt es auch keine beschreibung dazu..
Danke für Eure Hilfe! Wenn noch fragen bestehen schreibt,
Richi
2 Dimensional!
Mit Hilfe meines Mathe LK Wissens etc konnte ich bereits ein Raumschiff erstellen mit dem man hin und herfliegen kann(Sinus Cosinus Tangengs und davon die Umkehrfunktionen zu kennen ist garnichtmal so verkehrt).
Nun gibt es folgende Tastenbelegung:
Pfeiltasten:
Links=Raumschiff nach links drehen
Rechts=Raumschiff nach rechts drehen
Oben=Beschleunigen
Unten=Abbremsen
Soweit hat auch alles geklappt! Double Buffering, Paint, Update Methoden überschrieben.
Hier rumgewurschtelt da rtumgewurschtelt...
Nun hab ich eine 25fps machende nette kleine Anwendung mit der man so wie es sein soll umherfliegen kann
Nur bei der Eingabe durch den Keylistener haperts!
Erstmal mein Code:
Code:
public class KeyListenerAdaptiert extends KeyAdapter{
public void keyPressed(KeyEvent e){
int id = e.getKeyCode();
//Links
if(id==37){
control.linksDrehenAn();
//Rechts
}else if(id==39){
control.rechtsDrehenAn();
//Oben
}else if(id==38){
control.beschleunigenAn();
//Unten
}else if(id==40){
control.bremsenAn();
}
}
public void keyReleased(KeyEvent e){
int id = e.getKeyCode();
//Links
if(id==37){
control.linksDrehenAus();
//Rechts
}else if(id==39){
control.rechtsDrehenAus();
//Oben
}else if(id==38){
control.beschleunigenAus();
//Unten
}else if(id==40){
control.bremsenAus();
}
}
}
Ich denke das geübte Auge wird mit meinen Beschriftungen oben zurechtkommen! "KeyPressed" startet die Aktionen, welche daraufhin woanders in einem Thread solange ausgeführt werden bis das "KeyReleased"-Event den Thread stoppt!
Folgender Effekt tritt auf:
Wenn ich einzeln hintereinander die Tasten <- und -> drücke klappt es wunderbar!
Wenn ich jedoch beide Tasten drücke und eine davon loslasse gibt es eine kleine Verzögerung bevor die andere Taste zu wirken beginnt... dies passiert auch wenn ich ganz schnell abwechselnd <- und -> drücke.
Wenn ich 3 Tasten drücke klappt das auch noch nicht so ganz..
PS: Was ist eigentlich der gamelistener? Google will mir iwie nicht sagen ob ich damit mein Problem lösen kann...und hier im Forum gibt es auch keine beschreibung dazu..
Danke für Eure Hilfe! Wenn noch fragen bestehen schreibt,
Richi