Satyria

Sprites

Was sind Sprites. Dies sind Figuren, Gegenstände, die in einem Spiel sich in der Regel bewegen lassen. Diese können Animationen enthalten. Man kann Sprites noch in aktive und passive Sprites unterscheiden. Passive Sprites haben außer der Darstellung auf einem Bildschirm keine Funktion. Aktive Sprites können auf Kollisionen geprüft werden und interagieren mit der Umgebung, was in einem Spiel sehr sinnvoll ist…

Eigentlich sind Sprites kleinere Bilder, da wir mit diesen allerdings interagieren wollen, erstellen wir eine Struktur, die wir später auch für alle Sprites verwenden können

Und legen zu unserem ersten Sprite, welches wir Gesicht nennen, global an.

Zunächst müssen wir das Bild des Sprites laden, dazu schreiben wir folgende Funktion

Und nun brauchen wir auch eine Funktion, die das Sprite zeichnet.

Vom Grunde her ist es nichts anderes, als ein Bild zu Zeichnen. Allerdings wurde dem Bild keine „Position“ angegeben, außer das es an Pos 0,0 ist. Was dann ganz oben ist. Der Trick kommt später, wenn wir festlegen, was zuerst gezeichnet wird, und dies wird in unserem Hauptprogramm festgelegt.

Zunächst initialisieren wir das Programm, laden das Bild, laden den Sprite und geben dem Sprite eine Position. In der While Schleife legen wir nun Fest, das zunächst das Bild gezeichnet wird. Anschließen wird der Sprite gezeichnet und dann alles angezeigt.

Schon jetzt sind wir fertig. Unser Programm zeigt ein Sprite an.

Source 8.c; blume.png; sprite1.png

Bewegung im Spiel

Hmm… Soweit so gut… Aber das war ja noch nicht der Hammer. Deswegen lassen wir diese Sprite noch bewegen. Dies ist gar nicht so schwer.

Wie wir bereits wissen, können wir über die Events auf die Eingabe der Tastatur reagieren. Zuvor haben wir sie nur angezeigt, nun reagieren wir darauf. Sobald eine Taste gedrückt wurde, rufen wir eine neue Funktion auf, die wir TasteGedrueckt nennen.

Dieser Funktion wird die Eventstruktur übermittel. In dieser steht über den keysym.scancode, welche Taste gedrückt wurde. Diese fragen wir ab und wenn die Tasten rechts, links, runter oder rauf gedrückt wurden, addieren oder subtrahieren wir jeweils 1 mit der Variable „Gesicht.x“ oder „Gesicht.y“. Damit bekommt das Sprite jeweils eine neue Position.

Damit allerdings diese Funktion benutzt werden kann, muss auch noch die Eingabe-Funktion angepasst werden.

Also wenn eine Taste gedrückt wurde, rufe die Funktion TasteGedrueckt auf.

Das war es schon. Probiere es aus…

Source 9.c; blume.png; sprite1.png

<< Übersicht | < Auf Eingaben reagieren | Texturen >