Hallo! Ich bin neu in der Python-Gemeinde und würde gerne sozusagen als erste Übung einen Snake-Clone mit Pygame schreiben. Jedoch habe ich leider das Problem, dass ich keine Idee habe, wie ich die Schlange um die Ecke gebogen bekomme und den Schwanz hinterherziehe. Vielleicht kann mir einer von euch helfen.
MfG
Xtern
Pygame: Snake
Möglicherweise ist das Problem ein ganz anderes, dass nämlich die Aufgabe, die du dir da vorgenommen hast, für den Anfang noch zu schwer ist.Xtern hat geschrieben:Hallo! Ich bin neu in der Python-Gemeinde und würde gerne sozusagen als erste Übung einen Snake-Clone mit Pygame schreiben. Jedoch habe ich leider das Problem, dass ich keine Idee habe, wie ich die Schlange um die Ecke gebogen bekomme und den Schwanz hinterherziehe. Vielleicht kann mir einer von euch helfen.
MfG
Xtern
Was hast du denn schon für Vorerfahrungen (mit anderen Programmiersprachen)?
Du brauchst eine geeignete Datenstruktur. So eine Schlange kann sich ja nur auf einem Feld der Größe x * y, wobei x und y natürliche Zahlen sind. Jedes Feld hat eine bestimmte Breite oder Länge, in die dann ein Bild für ein Ei oder einen Teil der Schlange eingesetzt wird. Sowas kannst du mit eigenen Objekten und None Werten, die als Zustände agieren, in einer Liste von Listen umsetzen:
Als nächstes brauchst du also verschiedenen Objekte, die in so einem Feld existieren können, und ein Pygame Sprite repräsentieren (wobei du zuerst die ganze Logik ohne pygame entwickeln solltest, und dann der Logik Klasse ein Mixin mit einem pygame.sprite.Sprite zu erstellen). Dann brauchst du noch ein Objekt, das die Schlange repräsentiert und aus Schlangenteil Objekten besteht und diese so zu verwalten weiß, das eine Schlange sich eben so verhält, wie sie es soll.
Code: Alles auswählen
[[None, None, None, None, None],
[None, <Ei>, None, None, None],
[None, None, None, None, None],
[None, <Schlangeteil>, <Schlangenteil>, None, None],
[None, None, None, None, None]]
-
- User
- Beiträge: 14
- Registriert: Sonntag 7. Januar 2007, 20:59
Spontan würde ich es so machen:Xtern hat geschrieben:Hallo! Ich bin neu in der Python-Gemeinde und würde gerne sozusagen als erste Übung einen Snake-Clone mit Pygame schreiben. Jedoch habe ich leider das Problem, dass ich keine Idee habe, wie ich die Schlange um die Ecke gebogen bekomme und den Schwanz hinterherziehe. Vielleicht kann mir einer von euch helfen.
MfG
Xtern
sagen wir mal die gesamte schlange besteht aus kugeln. Dann würd ich die geordnet in einer liste speichern, wobei jeder Teil der schlange (also eine kugel) eine referenz auf ihm vorausgehende Kugel haben sollte. Somit bestimmt nur der vorderste Teil der Schlange (Kopf) die Richtung und alle anderen Kugeln setzen halt ihre aktuelle Position auf die "letzte" position der vorausgehenden Kugel setzen. Somit ziehen alle Teile der Schlange nach.
Besuch uns im euIRC:
server: irc.euirc.net
channel: #alle_in_den_chat
server: irc.euirc.net
channel: #alle_in_den_chat