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

Sc4v

Alter Hase

  • »Sc4v« ist der Autor dieses Themas

Beiträge: 376

Beruf: Student

  • Private Nachricht senden

61

05.09.2010, 04:02

Ihr habt recht... Hab mir das eben mal vor Augen geführt: Wenn ich die Schlange wirklich pro Pixel bewege, dann wird das um die Ecke fahren mehr als nur schwer sondern für mich gar unmöglich :P

BurningWave

Alter Hase

Beiträge: 1 106

Wohnort: Filderstadt/Konstanz

Beruf: Student

  • Private Nachricht senden

62

05.09.2010, 19:40

Du hättest noch die Möglichkeit entsprechend kleine Sprites zu verwenden: Wenn du die Schlange pro Einheit 5 Pixel bewegen willst, dann müssten deine Sprites 5 x 5 Pixel groß sein. Aber ob das Sinn macht, ist die andere Frage ^^

Architekt

Community-Fossil

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

63

05.09.2010, 20:34

Zitat

wenn element 1 die richtung von 1|0 in 0|1 wechselt hat element 3 ja immernoch die richtung 1|0. woher weiß element drei von dem richtungswechsel? dann muss man dem nächsten element immer die richtung von dem vorgänger geben

Man könnte auch einfach die List Funktionen "emulieren", sprich, holt sich die Koordinaten des derzeitigen Elements und gibt diese Koordinaten an das nachfolgende Element weiter (sofern eins existiert). Also wär's egal ob Liste oder Array, auch wenn es mit einer Liste durch die eingebauten Methoden erleichtert wird.
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

Mastermind

unregistriert

64

07.09.2010, 12:04

Ich kann rar Archieve leider nicht öffnen, zip wäre besser.

Als Schwanz würde ich list<vector> nehmen. In der Liste würde ich die Schwanzsegmente speichern (wenn du die Schlange schachbrettartig bewegen würdest, könntest du beim Bewegen einfach das letzte Element löschen und vorne immer ein neues einfügen).

Oder aber alle Elemente nacheinander bewegen ;) Liste durchgehen und Koordinaten erhöhen/erniedrigen. Vielleicht einfacher.
Wie hast du denn nun die Bewegung bewerkstelligt? Mit den 1 bzw. 5px. pro Step mit erhöhten Geschwindigkeits Faktor?



Ich würde es so machen wie Burning Wave gesagt hat: nur vorne einfügen und hinten löschen. Warum sollte das nicht auch gehen, wenn sich die Schlange nicht schachbrettartig bewegt?

Werbeanzeige