-
Notifications
You must be signed in to change notification settings - Fork 0
Getting Started Breakout_de
Home | Beginner Preset | English | Français
Vom PyGameMaker-Team
In diesem Tutorial lernen wir die Grundlagen der Spielerstellung mit PyGameMaker. Da es sich um eine relativ umfangreiche Software mit vielen Funktionen handelt, konzentrieren wir uns nur auf diejenigen, die uns während dieses Tutorials helfen werden.
Wir werden ein einfaches Breakout-Spiel erstellen, das so aussehen wird:
Dieses Tutorial ist auch für dich geeignet, wenn du keine Programmierkenntnisse hast, da PyGameMaker es Anfängern ermöglicht, unabhängig von ihrem Kenntnisstand einfach Spiele zu erstellen.
Also gut, fangen wir mit dem Design unseres Spiels an!
Beginne damit, PyGameMaker zu öffnen. Du solltest die Hauptoberfläche mit dem Assets-Panel auf der linken Seite sehen, das verschiedene Ressourcenkategorien auflistet: Sprites, Sounds, Hintergründe, Schriftarten, Objekte und Räume.
Bevor wir irgendetwas anderes tun: In einem Videospiel ist das Erste, was der Spieler bemerkt, das, was er auf dem Bildschirm sieht. Dies ist tatsächlich die Grundlage eines Spiels: Ein Spiel ohne Grafik existiert nicht (oder es ist ein sehr spezieller Fall). Wir werden daher damit beginnen, Bilder in unser Spiel einzufügen, die die grafische Darstellung der Objekte sein werden, die der Spieler auf dem Bildschirm sehen wird. In der Spielentwicklungsterminologie werden diese Bilder Sprites genannt.
- Klicke mit der rechten Maustaste auf den Sprites-Ordner oben in der linken Spalte
- Klicke auf Create Sprite
- Ein Fenster namens Sprite Properties öffnet sich - hier definierst du alle Eigenschaften deines Sprites
- Verwende den eingebauten Editor, um ein horizontales Rechteck (etwa 64x16 Pixel) in einer Farbe deiner Wahl zu zeichnen
-
Wichtig: Klicke auf Center, um den Ursprung in der Mitte deines Sprites zu setzen
Der Ursprung eines Sprites ist sein Mittelpunkt, seine X:0 und Y:0 Koordinaten. Dies sind seine Basiskoordinaten.
- Ändere den Namen deines Sprites im Textfeld oben und gib
spr_paddleeinDies hat keine technische Auswirkung - es dient nur dazu, dir zu helfen, deine Dateien besser zu navigieren, sobald du mehr davon hast. Du kannst jeden beliebigen Namen wählen; dies ist nur ein Beispiel.
- Klicke auf OK
Du hast gerade dein erstes Sprite erstellt! Dies ist dein Schläger, das Objekt, das der Spieler steuern wird, um den Ball zu fangen.
Lass uns fortfahren und weitere Sprites hinzufügen. Wiederhole den gleichen Vorgang:
- Rechtsklick auf Sprites → Create Sprite
- Zeichne einen kleinen Kreis (etwa 16x16 Pixel)
- Klicke auf Center, um den Ursprung zu setzen
- Nenne es
spr_ball - Klicke auf OK
Wir brauchen drei Arten von Steinen. Erstelle sie nacheinander:
Erster Stein (Zerstörbar):
- Erstelle ein neues Sprite
- Zeichne ein Rechteck (etwa 48x24 Pixel) - verwende eine leuchtende Farbe wie Rot
- Klicke auf Center, nenne es
spr_brick_1 - Klicke auf OK
Zweiter Stein (Zerstörbar):
- Erstelle ein neues Sprite
- Zeichne ein Rechteck (gleiche Größe) - verwende eine andere Farbe wie Blau
- Klicke auf Center, nenne es
spr_brick_2 - Klicke auf OK
Dritter Stein (Unzerstörbare Wand):
- Erstelle ein neues Sprite
- Zeichne ein Rechteck (gleiche Größe) - verwende eine dunklere Farbe wie Grau
- Klicke auf Center, nenne es
spr_brick_3 - Klicke auf OK
Du solltest jetzt alle Sprites für unser Spiel haben:
-
spr_paddle- Der Schläger des Spielers -
spr_ball- Der springende Ball -
spr_brick_1- Erster zerstörbarer Stein -
spr_brick_2- Zweiter zerstörbarer Stein -
spr_brick_3- Unzerstörbarer Wandstein
Hinweis: In Spielen gibt es im Allgemeinen zwei Hauptquellen für die grafische Darstellung: Sprites und Hintergründe. Das ist alles, was das ausmacht, was du auf dem Bildschirm siehst. Ein Hintergrund ist, wie der Name schon sagt, ein Hintergrundbild.
Was haben wir am Anfang gesagt? Das Erste, was der Spieler bemerkt, ist das, was er auf dem Bildschirm sieht. Darum haben wir uns mit unseren Sprites gekümmert. Aber ein Spiel, das nur aus Bildern besteht, ist kein Spiel - es ist ein Gemälde! Wir gehen jetzt zur nächsten Stufe über: Objekte.
Ein Objekt ist eine Entität in deinem Spiel, die Verhaltensweisen haben, auf Events reagieren und mit anderen Objekten interagieren kann. Das Sprite ist nur die visuelle Darstellung; das Objekt ist das, was ihm Leben verleiht.
Alles in der Spielprogrammierung folgt diesem Muster: Wenn das passiert, dann führe ich das aus.
- Wenn der Spieler eine Taste drückt, dann mache ich dies
- Wenn diese Variable diesem Wert entspricht, dann mache ich das
- Wenn zwei Objekte kollidieren, dann passiert etwas
Dies nennen wir Events und Actions in PyGameMaker:
- Events = Dinge, die passieren können (Tastendruck, Kollision, Timer, usw.)
- Actions = Dinge, die du tun möchtest, wenn Events eintreten (bewegen, zerstören, Punktestand ändern, usw.)
Lass uns das Objekt erstellen, das der Spieler steuern wird: den Schläger.
- Rechtsklick auf den Objects-Ordner → Create Object
- Nenne es
obj_paddle - Wähle im Sprite-Dropdown
spr_paddleaus - jetzt hat unser Objekt ein visuelles Erscheinungsbild! - Aktiviere das Solid-Kontrollkästchen (wir brauchen das für Kollisionen)
In einem Breakout-Spiel müssen wir den Schläger bewegen, um zu verhindern, dass der Ball unten entkommt. Wir steuern ihn mit der Tastatur.
Nach rechts bewegen:
- Klicke auf Add Event → Keyboard → Right Arrow
- Füge aus dem Aktions-Panel auf der rechten Seite die Aktion Set Horizontal Speed hinzu
- Setze den value auf
5 - Klicke auf OK
Das bedeutet: "Wenn die Pfeiltaste nach rechts gedrückt wird, setze die horizontale Geschwindigkeit auf 5 (Bewegung nach rechts)."
Nach links bewegen:
- Klicke auf Add Event → Keyboard → Left Arrow
- Füge die Aktion Set Horizontal Speed hinzu
- Setze den value auf
-5 - Klicke auf OK
Stoppen, wenn Tasten losgelassen werden:
Wenn wir jetzt testen würden, würde der Schläger sich weiter bewegen, auch nachdem die Taste losgelassen wurde! Lass uns das beheben:
-
Klicke auf Add Event → Keyboard Release → Right Arrow
-
Füge die Aktion Set Horizontal Speed mit dem Wert
0hinzu -
Klicke auf OK
-
Klicke auf Add Event → Keyboard Release → Left Arrow
-
Füge die Aktion Set Horizontal Speed mit dem Wert
0hinzu -
Klicke auf OK
Jetzt bewegt sich unser Schläger, wenn die Tasten gedrückt werden, und stoppt, wenn sie losgelassen werden. Wir sind mit diesem Objekt vorerst fertig!
Lass uns einen unzerstörbaren Wandstein erstellen - dieser wird die Grenzen unseres Spielbereichs bilden.
- Erstelle ein neues Objekt namens
obj_brick_3 - Weise das Sprite
spr_brick_3zu - Aktiviere das Solid-Kontrollkästchen
Der Ball wird von diesem Stein abprallen. Da es nur eine Wand ist, brauchen wir keine Events - es muss nur solide sein. Klicke auf OK zum Speichern.
Jetzt erstellen wir den Ball, das wesentliche Element unseres Spiels.
- Erstelle ein neues Objekt namens
obj_ball - Weise das Sprite
spr_ballzu - Aktiviere das Solid-Kontrollkästchen
Wir möchten, dass sich der Ball von Anfang an selbstständig bewegt. Geben wir ihm eine Anfangsgeschwindigkeit und Richtung.
- Klicke auf Add Event → Create
Das Create-Event führt Aktionen aus, wenn das Objekt im Spiel erscheint, d.h. wenn es die Szene betritt.
- Füge die Aktion Set Horizontal Speed mit dem Wert
4hinzu - Füge die Aktion Set Vertical Speed mit dem Wert
-4hinzu - Klicke auf OK
Dies gibt dem Ball eine diagonale Bewegung (nach rechts und oben) zu Beginn des Spiels.
Wir müssen den Ball abprallen lassen, wenn er den Schläger trifft.
- Klicke auf Add Event → Collision → wähle
obj_paddleDieses Event wird ausgelöst, wenn der Ball mit dem Schläger kollidiert.
- Füge die Aktion Reverse Vertical hinzu
Dies kehrt die vertikale Richtung um und lässt den Ball abprallen.
- Klicke auf OK
Die gleiche Operation für die Wandsteine:
- Klicke auf Add Event → Collision → wähle
obj_brick_3 - Füge die Aktion Reverse Vertical hinzu
- Füge die Aktion Reverse Horizontal hinzu
Wir fügen beide hinzu, weil der Ball die Wand aus verschiedenen Winkeln treffen könnte.
- Klicke auf OK
Nach Sprites und Objekten kommen die Räume. Ein Raum ist der Ort, an dem das Spiel stattfindet: Es ist eine Karte, ein Level. Hier platzierst du alle deine Spielelemente, hier organisierst du, was auf dem Bildschirm erscheinen wird.
- Rechtsklick auf Rooms → Create Room
- Nenne es
room_game
Platziere nun deine Objekte mit der Maus:
- Linksklick zum Platzieren eines Objekts
- Rechtsklick zum Löschen eines Objekts
Wähle das zu platzierende Objekt aus dem Dropdown-Menü im Raum-Editor.
Baue dein Level:
- Platziere
obj_brick_3-Instanzen an den Rändern (oben, links, rechts) - lass den Boden offen! - Platziere
obj_paddleunten in der Mitte - Platziere
obj_ballirgendwo in der Mitte
Klicke auf den Play-Button (grüner Pfeil) in der Werkzeugleiste. Damit kannst du dein Spiel jederzeit testen.
Du kannst bereits Spaß daran haben, den Ball von den Wänden und dem Schläger abprallen zu lassen!
Es ist minimal, aber bereits ein guter Anfang - du hast dein Spielfundament!
Lass uns einige Steine zum Zerstören hinzufügen, um unser Spiel unterhaltsamer zu machen.
- Erstelle ein neues Objekt namens
obj_brick_1 - Weise das Sprite
spr_brick_1zu - Aktiviere Solid
Wir fügen das Verhalten hinzu, sich selbst zu zerstören, wenn er vom Ball getroffen wird:
- Klicke auf Add Event → Collision → wähle
obj_ball - Füge die Aktion Destroy Instance mit Ziel self hinzu
Diese Aktion entfernt ein Objekt während des Spiels - hier den Stein selbst.
- Klicke auf OK
Und schon hast du deinen neuen zerstörbaren Stein!
Jetzt erstellen wir einen zweiten zerstörbaren Stein, aber ohne ihn neu programmieren zu müssen. Wir machen ihn mit der Parent-Funktion zu einem "Klon".
- Erstelle ein neues Objekt namens
obj_brick_2 - Weise das Sprite
spr_brick_2zu - Aktiviere Solid
- Wähle im Parent-Dropdown
obj_brick_1aus
Was bedeutet das? Einfach, dass das, was wir in obj_brick_1 programmiert haben, von obj_brick_2 geerbt wird, ohne es selbst reproduzieren zu müssen. Die Eltern-Kind-Beziehung ermöglicht es Objekten, Verhaltensweisen zu teilen!
Klicke auf OK zum Speichern.
Öffne obj_ball erneut durch Doppelklick und füge Kollisions-Events für unsere neuen Steine hinzu:
-
Klicke auf Add Event → Collision → wähle
obj_brick_1 -
Füge die Aktion Reverse Vertical hinzu
-
Klicke auf OK
-
Klicke auf Add Event → Collision → wähle
obj_brick_2 -
Füge die Aktion Reverse Vertical hinzu
-
Klicke auf OK
Wir müssen das Level neu starten, wenn der Ball den Bildschirm verlässt (wenn der Spieler ihn nicht fängt).
In obj_ball:
- Klicke auf Add Event → Other → Outside Room
- Füge die Aktion Restart Room hinzu
Diese Aktion startet den aktuellen Raum während des Spiels neu.
- Klicke auf OK
Platziere jetzt alles in deinem Raum, um dein finales Breakout-Level zu erstellen:
- Öffne
room_game - Ordne
obj_brick_3-Wände oben und an den Seiten an - Platziere Reihen von
obj_brick_1undobj_brick_2in Mustern oben - Behalte
obj_paddleunten in der Mitte - Platziere
obj_ballüber dem Schläger
Beispiel-Layout:
[3][3][3][3][3][3][3][3][3][3]
[3][1][1][2][2][1][1][2][2][3]
[3][2][2][1][1][2][2][1][1][3]
[3][1][1][2][2][1][1][2][2][3]
[3] [3]
[3] [3]
[3] (ball) [3]
[3] [3]
[3] [paddle] [3]
Dein Breakout-Spiel ist fertig! Du kannst jetzt deine Arbeit genießen, indem du das Spiel spielst, das du gerade erstellt hast!
Du kannst es auch weiter verfeinern, zum Beispiel durch Hinzufügen von:
- Soundeffekte für Abprallen und Steinzerstörung
- Punkteverfolgung mit der Add Score-Aktion
- Zusätzliche Steintypen mit verschiedenen Verhaltensweisen
- Mehrere Level mit verschiedenen Layouts
| Konzept | Beschreibung |
|---|---|
| Sprites | Visuelle Bilder, die Objekte in deinem Spiel darstellen |
| Objekte | Spielentitäten mit Verhaltensweisen, die Sprites mit Events und Aktionen kombinieren |
| Events | Auslöser, die Aktionen ausführen (Create, Keyboard, Collision, usw.) |
| Actions | Operationen zum Ausführen (Bewegen, Zerstören, Abprallen, usw.) |
| Solid | Eigenschaft, die Kollisionserkennung ermöglicht |
| Parent | Ermöglicht Objekten, Verhaltensweisen von anderen Objekten zu erben |
| Räume | Spiellevel, in denen du Objektinstanzen platzierst |
| Objekt | Sprite | Solid | Events |
|---|---|---|---|
obj_paddle |
spr_paddle |
Ja | Keyboard (Links/Rechts), Keyboard Release |
obj_ball |
spr_ball |
Ja | Create, Collision (Schläger, Steine), Outside Room |
obj_brick_1 |
spr_brick_1 |
Ja | Collision (Ball) - Selbst zerstören |
obj_brick_2 |
spr_brick_2 |
Ja | Erbt von obj_brick_1
|
obj_brick_3 |
spr_brick_3 |
Ja | Keine (nur eine Wand) |
- Beginner Preset - Events und Aktionen für Anfänger verfügbar
- Event Reference - Vollständige Liste aller Events
- Full Action Reference - Vollständige Liste aller Aktionen
- Tutorial: Breakout - Kürzere Version dieses Tutorials