Laden...

Snake Body soll Kopf folgen

Erstellt von Jan_kie vor 5 Jahren Letzter Beitrag vor 5 Jahren 1.591 Views
J
Jan_kie Themenstarter:in
11 Beiträge seit 2018
vor 5 Jahren
Snake Body soll Kopf folgen

Hey,

ich weiß es gibt schon viele Snake-Code Beispiele, allerdings bin ich dort nicht fündig gewurden (oder habe nicht gut genug gesucht).

Mein Problem ist es, dass ich nicht weiß, wie ich den Körper der Snake erstelle, bzw. diesen dem Kopf folgen lassen kann. Bin noch blutiger Anfänger.

Jemand Vorschläge wie man das am besten umsetzen kann? Evtl. mit einer Liste?

#edit: Meine Idee war es, das letzte Glied des Bodys bei jedem Tick hinter den Kopf zu setzen, sodass sich nicht der ganze Body verschieben muss, sondern nur das letzte Glied die Postistion einnimmt an der voher der Kopf war. Also bspw.:

K = Kopf
B = Body

B4-B3-B2-B1-K -> B3-B2-B1-B4-K -> B2-B1-B4-B3-K -> B1-B4-B3-B2-K -> B4-B3-B2-B1-K

#edit2: Problem hat sich gelöst, danke!

1.029 Beiträge seit 2010
vor 5 Jahren

Hi,

das Beispiel ist zwar für die Konsole - aber da siehst du schnell wie man's angehen kann:
https://codereview.stackexchange.com/questions/127515/first-c-program-snake-game

Überdies würde ich dir dringend empfehlen deinen Code komplett aufzuarbeiten.

Was dort steht verstehst du selbst in wenigen Wochen nicht mehr...

LG

5.658 Beiträge seit 2006
vor 5 Jahren

Hi Jan_kie,

du mußt dir merken, welchen Weg der "Kopf" genommen hat, d.h. an welcher Stelle er links oder rechts abgeboten ist Dann müssen alle Elemente des "Körpers" der Reihe nach diesem Weg folgen.

Das ist allerdings nicht einfach zu implementieren, wenn du Code schreibst, der so aussieht. Du solltest dich zuerst einmal mit den Konzepten der Objektorientierten Programmierung auseinandersetzen. Ich empfehle auch einen Blick in:
[FAQ] Wie finde ich den Einstieg in C#?
[Tutorial] Zeichnen in Windows-Forms-Programmen (Paint/OnPaint, PictureBox)
[Artikel] Drei-Schichten-Architektur
Das OpenBook vom Rheinwerk-Verlag: 🛈

Weeks of programming can save you hours of planning

5.941 Beiträge seit 2005
vor 5 Jahren

Hallo Jan_kie

Du kannst dir mal ein altes Beispiel von mir anschauen:

(DoublebufferedPanel einfach durch das WindowsForms "Panel" ersetzten).

Gruss Peter

--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011