Hi
Ich habe mal eine kleines Snakespiel programmiert um einen Einstieg in die Spieleprogrammierung zu haben. Meine Frage passt denke ich aber hier besser rein. Habe erstmal das Movement der Schlange so geregelt:
Jetzt habe ich mich aber dafür entschieden, das Spiel doch noch weiter zu machen und so kann man ja gar nicht verlieren, weil die schnecke sich immer komplett dreht.
Meine Idee ist jetzt eine Klasse Punkt zu schreiben und immer wenn die Schlange ein Korn frisst einene neuen Punkt der Schlange zu erzeugen. Und dann soll sich nur der vorderste Punkt bewegen und der dahinter immer die Koordinaten die alten Koordinaten des Punktes davor hat.
1) Hat jemand vielleicht eine einfachere Idee
und falls nicht 2) Wie kann ich denn ein zufälliges Objekt der Klasse Punkt dann erzeugen, so dass ich darauf zugreifen kann. Brauche ja immer einen Bezeichner. Oder sollte ich das mit einer ArrayList machen?
Will das nicht irgendwie machen, sondern soll schon schön sein und wenn es einfacher ginge, ist es finde ich schöner auch einen einfachen Weg zu wählen .
Habe mir auch noch überlegt immer den letzten Punkt der Schlange zu löschen und dafür vorne einen hinzuzufügen?
Grüße
Ich habe mal eine kleines Snakespiel programmiert um einen Einstieg in die Spieleprogrammierung zu haben. Meine Frage passt denke ich aber hier besser rein. Habe erstmal das Movement der Schlange so geregelt:
Java:
public void drawSnake(Graphics g) {
g.setColor(Color.blue);
int x = xPos - radius;
int y = yPos - radius;
int alpha = length;
int betta = 0;
int gamma = 1;
while (alpha > 0) {
if (directionLeft) {
g.fillOval(x + betta * radius, y, 2 * radius, 2 * radius);
betta++;
alpha--;
}
if (directionRight) {
g.fillOval(x - betta * radius, y, 2 * radius, 2 * radius);
betta++;
alpha--;
}
if (directionUp) {
g.fillOval(x, y + betta * radius, 2 * radius, 2 * radius);
betta++;
alpha--;
}
if (directionDown) {
g.fillOval(x, y - betta * radius, 2 * radius, 2 * radius);
betta++;
alpha--;
}
if (!directionLeft && !directionRight && !directionUp && !directionDown) {
g.fillOval(x, y, 2 * radius, 2 * radius);
alpha = 0;
}
}
}
Jetzt habe ich mich aber dafür entschieden, das Spiel doch noch weiter zu machen und so kann man ja gar nicht verlieren, weil die schnecke sich immer komplett dreht.
Meine Idee ist jetzt eine Klasse Punkt zu schreiben und immer wenn die Schlange ein Korn frisst einene neuen Punkt der Schlange zu erzeugen. Und dann soll sich nur der vorderste Punkt bewegen und der dahinter immer die Koordinaten die alten Koordinaten des Punktes davor hat.
1) Hat jemand vielleicht eine einfachere Idee
und falls nicht 2) Wie kann ich denn ein zufälliges Objekt der Klasse Punkt dann erzeugen, so dass ich darauf zugreifen kann. Brauche ja immer einen Bezeichner. Oder sollte ich das mit einer ArrayList machen?
Will das nicht irgendwie machen, sondern soll schon schön sein und wenn es einfacher ginge, ist es finde ich schöner auch einen einfachen Weg zu wählen .
Habe mir auch noch überlegt immer den letzten Punkt der Schlange zu löschen und dafür vorne einen hinzuzufügen?
Grüße