TOC

This article has been localized into German by the community.

Erstellen eines Spiels: SnakeWPF:
Chapter introduction:

In this article series, we're building a complete Snake game from scratch. It makes sense to start with the Introduction and then work your way through the articles one by one, to get the full understanding.

If you want to get the complete source code for the game at once, to get started modifying and learning from it right now, consider downloading all our samples!

Einleitung

Eine kurze Zusammenfassung dieses einleitenden Artikels: Wir werden das klassische "Snake" in WPF implementieren und das Ergebnis wird am Ende etwa so aussehen:

Das Erstellen von Spielen ist oft der Grund dafür, dass sich vor allem junge Menschen zum Lernen von Programmieren hingezogen fühlen. Doch die Frage ist meist: Wie fange ich an und was brauche ich? Nun, du brauchst eine Programmiersprache wie C#, C++ oder eine der anderen bekannten Sprachen, und wenn du deine bevorzugte Sprache fließend beherrscht, brauchst du nicht wirklich mehr: Beginne einfach damit, unten Pixel hinzuzufügen, und irgendwann hast du möglicherweise ein funktionierendes Spiel.

Jedoch würden die meisten eine kleine Hilfe für den ganzen Kleinkram begrüßen. Warum auch Pixel manuell dem Screen hinzufügen, wenn es doch eine Library oder ein Framework gibt, das genau dies für dich tun kann? Das erspart dir nicht nur Arbeit, sondern lässt dich auch auf das Wesentliche konzentrieren - das Erschaffen eines unterhaltsamen Games. Viele Frameworks könnten dir bei solch einem Projekt helfen, eines davon wäre das WPF Framework.

Zugegeben, WPF ist nicht die nächstliegendste Wahl, wenn es darum geht Spiele zu entwickeln - es ist definitiv ein Framework, dass eher für Benutzeroberflächen im Businessbereich Verwendung findet. Dennoch gibt es viele Elemente im WPF Framework, die man dazu verwenden kann, ein Spiel zu konstruieren. Und vielleicht genauso wichtig: Man bekommt alle Mechanismen zur Zeichnung und Kontrolle von Fenstern unter Windows an die Hand.

Wenn man also ein ganz einfaches Spiel erstellen will, ist WPF eventuell keine so schlechte Wahl. Zumindest wird es bei den grundlegendsten Aspekten, wie die Erzeugung eines Fensters, einer simplen Spielumgebung usw., eine Hilfe sein. Sollte man es eher auf fortgeschrittene 3D-Grafik und sich schnell bewegende Objekte abgesehen haben, so wird man eventuell auf Unterstützung durch andere Librarys/Frameworks angewiesen sein. Für ein simples Spiel wird es aber reichen - z. B. für ein klassisches Snake

SnakeWPF

Um die Machbarkeit eines solchen Unterfangens zu beweisen habe ich mich dazu entschlossen, eine WPF-basierte Version des extrem klassischen Spieles "Snake" zu erstellen. Als Spielbereich wird ein normales WPF Fenster verwendet, das Gameplay durch normale WPF Bedienelemente und Formen realisiert. Meine Wahl fiel deshalb auf Snake, da es sehr leicht zu implementieren ist (es gibt einfach nicht so viel "Logik" zu programmieren) und da es mit einfachen geometrischen Figuren wie Kreisen und Rechtecken implementiert werden kann, welche mit dem WPF Framework sehr einfach genutzt werden können. Nicht zuletzt aber auch, weil es einfach noch immer ein wirklich lustiges Spiel ist - obwohl es doch eigentlich sehr simpel ist.

Wenn du "Snake" nicht kennst, kann ich nur vermuten, dass du nie ein Handy von Nokia aus den späten 90ern und frühen 2000ern in den Händen hielst. Zwar wurde die erste Version von "Snake" bereits viele Jahre davor entwickelt und vorgestellt, aber erst als Nokia entschied, eine eigene Version auf allen Handys im Sortiment mitzuliefern, wurde es ein rießiger Hit.

Das Gameplay ist einfach wie auch unterhaltsam: Man bewegt eine virtuelle Schlange (engl. "Snake") in eine Richtung (links, rechts, nach unten oder oben) auf der Jagd nach Nahrung (ab und zu darfs sogar ein Apfel sein). Wenn die Schlange einen Apfel berührt, ist er gegessen und die Schlange wächst, ein neuer Apfel erscheint. Wird jedoch eine Wand oder die Schlange selbst berührt, endet das Spiel und man muss wieder bei null beginnen. Je mehr Äpfel gegessen werden, desto mehr Punkte erhält man, und desto schwieriger wird es, keine Wand oder die Schlange selbst zu berühren.

Es gibt VIELE Variationen des Gameplays - beispielsweise beschleunigt sich häufig die Rate in der die Schlange sich vorwärts bewegt mit jedem gegessenen Apfel, was das Spiel schwieriger und schwieriger macht. Das ist aber nicht bei allen Implementierungen der Fall. Eine andere Variation betrifft die Wände - manche Varianten erlauben es der Schlange durch die Wand zu gehen und auf der gegenüberliegenden Seite des Spielfelds wieder herauszukommen, während in wieder anderen Varianten das Spiel beendet wird, sobald man die Wand trifft.

In unserem SnakeWPF sind die Wände solide, die Schlange stirbt wenn sie diese berührt. Außerdem erhöht sich die Geschwindigkeit exponentiell für jeden gegessenen Apfel, bis eine gewisse Geschwindigkeit erreicht ist.

Zusammenfassung

In den nachfolgenden Artikeln werden wir eine nette Version des Klassikers mithilfe des WPF Framworks entwickeln. Im nächsten Artikel beginnen wird zuerst mit dem Hintergrund, und zum Schluss werden wir unser erstes, voll funktionstüchtiges WPF-Game haben.

Beachte bitte, dass dies zwar ein WPF Tutorial ist, wir aber ein bisschen mehr C#-Code als normalerweise benötigen, um die Game-Logik und Weiteres umzusetzen. Ich werde versuchen, das meiste davon nebenbei zu erklären, falls du jedoch mehr über C# wissen möchtest, kannst du dir doch unser vollständiges C#-Tutorial ansehen.

This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!