Hallo,
ich bin neu in Java und versuche jetzt, mein erstes kleines Spiel zu programmieren. Dafür muss sich aber das zu steuernde Objekt, sobald die Taste 'w' 's' 'a' oder 'd' gedrückt wird, solange in die jeweilige Richtung bewegen, bis eine andere Taste gedrückt wird. Allerdings kenne ich nur die Bedingung 'view.keyPressed()' oder '!view.keyPressed()'. Dennoch geht das mit diesen Bedingungen natürlich nicht. Könnte mir jemand helfen.
LG
PS: Hier der Code den ich bisher geschrieben habe:
import sas.*;
import java.awt.Color;
class SnakeTest {
View view;
Rectangle Hintergrund;
Rectangle B1;
Rectangle B2;
Rectangle B3;
Rectangle B4;
Circle Points;
Rectangle Snake;
SnakeTest() {
int x = Tools.randomNumber(70, 730);
int y = Tools.randomNumber(70, 730); // Randomizer
view = new View(800, 800);
Hintergrund = new Rectangle(0, 0, 800, 800, new Color(0, 0, 153));
B1 = new Rectangle(0, 0, 800, 50, new Color(153, 153, 153));
B2 = new Rectangle(0, 0, 50, 800, new Color(153, 153, 153));
B3 = new Rectangle(0, 750, 800, 50, new Color(153, 153, 153));
B4 = new Rectangle(750, 0, 50, 800, new Color(153, 153, 153));
Points = new Circle(x, y, 10, new Color(204, 0, 0));
Snake = new Rectangle(360, 360, 40, 40, new Color(255, 102, 0)); // Erstellung
while (!view.keyPressed('q')) {
Snake.move(0, -2);
if (view.keyPressed('w')) {
Snake.move(0, -2);
}
if (view.keyPressed('s')) {
Snake.move(0, 2);
}
if (view.keyPressed('d')) {
Snake.move(2, 0);
}
if (view.keyPressed('a')) {
Snake.move(-2, 0);
} // Steuerung
if (B1.intersects(Snake)) {
new Text(380, 10, "ENDE", Color.RED);
view.wait(400);
System.exit(0);
}
if (B2.intersects(Snake)) {
new Text(380, 10, "ENDE", Color.RED);
view.wait(400);
System.exit(0);
}
if (B3.intersects(Snake)) {
new Text(380, 10, "ENDE", Color.RED);
view.wait(400);
System.exit(0);
}
if (B4.intersects(Snake)) {
new Text(380, 10, "ENDE", Color.RED);
view.wait(400);
System.exit(0);
} // Beendigung bei Fehler
view.wait(10);
} // Spielschleife
new Text(380, 10, "ENDE", Color.RED);
view.wait(400);
System.exit(0); // Beendigung bei Tastendruck
}
}