Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

11

03.11.2016, 14:11

Ich weiß nicht mehr genau, was ich gemacht hab, wenn die Schlange länger wurde. Aber das kriegst Du bestimmt hin!

Einfach nicht löschen indem du weiß übermalst?
Ja, aber ich bin mir gerade nicht sicher, wie man beim rollierenden "Kopf-Index" ein Element dazu nimmt - das wird dann ja einfach irgendwo in der Schlange eingefügt. Ich glaube man muss die Koordinaten einfach mit Koordinaten außerhalb der Malfläche vorinitialisieren, aber wenn man jedes Mal alles neu malt, macht das evt. Probleme. An sich kann man sich diese Probleme einfach sparen indem man wie von Thandor beschrieben vorgeht.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Chromanoid« (03.11.2016, 14:17)


Thandor

Frischling

Beiträge: 84

Wohnort: Berlin

Beruf: Softwareentwickler

  • Private Nachricht senden

12

03.11.2016, 14:56

[...] An sich kann man sich diese Probleme einfach sparen indem man wie von Thandor beschrieben vorgeht.


wobei die For-Schleife, die ich geschrieben haben von Schorsch beschrieben wurde.
Ich mag pewn.de.

Azasel

unregistriert

13

03.11.2016, 22:43

Danke für eure Antworten.

Ich habe es endlich hinbekommen und das ohne eine Liste oder einem Verbund(Record) was ich hierzu auch gut nutzen könnte.
Ich habe einfach, wie bereits erwähnt wurde, 2 Felder vom Typ Integer erstellt, einmal für die X und Y Koordinate jedes Segmentes.

Die Formel sieht dann etwa so aus:

Quellcode

1
2
3
4
5
6
7
(Schleife) i = 1 bis schlangenLänge{
SchlangeX[schlangenLänge +1 -i] = SchlangeX[schlangenLänge -i]; 
/* das selbe für Y */
}
/* Für den Schlangenkopf */
SchlangeX[1] = SchlangeX[1] + richtung;
/* Das selbe nochmal für Y*/


Probleme habe ich leider noch bei der Kollision, was ich eigentlich fast am einfachsten finde, aber ich denke das bekomme ich auch noch hin.

Hier ein Screenshot vom unfertigen Spiel
»Azasel« hat folgende Bilder angehängt:
  • SNAKE.PNG
  • SNAKE2.PNG

Azasel

unregistriert

14

04.11.2016, 22:06

Highscoore,
Geschwindigkeitserhöhung und
Kollisionen mit Wand und sich selbst ist eingebaut.

Selten kollidiert die Schlange ohne Grund mit nichts, das wäre noch das einzige Problem, liegt wohl an meinem schlechten Algorithmus für die Kollisionserkennung :(
»Azasel« hat folgendes Bild angehängt:
  • SNAKE3.PNG

Werbeanzeige