-
Notifications
You must be signed in to change notification settings - Fork 0
Tutorial Pong_de
Wählen Sie Ihre Sprache / Select your language / Choisissez votre langue:
English | Français | Deutsch | Italiano | Español | Português | Slovenščina | Українська | Русский
In dieser Anleitung werden Sie ein klassisches Pong-Spiel erstellen - eines der ersten Videospiele, die je gemacht wurden! Pong ist ein Zwei-Spieler-Spiel, bei dem jeder Spieler einen Schläger kontrolliert und versucht, den Ball über den Schläger des Gegners zu treffen, um Punkte zu erzielen.
Das werden Sie lernen:
- Sprites für Schläger, Ball und Wände erstellen
- Tastatureingaben für zwei Spieler verarbeiten
- Objekte zum Abprallen bringen
- Punkte für beide Spieler verfolgen und anzeigen
- Globale Variablen verwenden
Schwierigkeitsgrad: Anfänger Vorgabe: Anfänger-Vorgabe
Bevor wir beginnen, schauen wir uns an, was wir brauchen:
| Element | Zweck |
|---|---|
| Ball | Springt zwischen den Spielern hin und her |
| Linker Schläger | Spieler 1 steuert ihn mit W/S-Tasten |
| Rechter Schläger | Spieler 2 steuert ihn mit Pfeil oben/unten |
| Wände | Obere und untere Grenzen |
| Tore | Unsichtbare Bereiche hinter jedem Schläger zur Punkteerkennung |
| Punkteanzeige | Zeigt die Punkte beider Spieler an |
- Klicken Sie im Ressourcenbaum mit der rechten Maustaste auf Sprites und wählen Sie Sprite erstellen
- Geben Sie ihm den Namen
spr_ball - Klicken Sie auf Sprite bearbeiten, um den Sprite-Editor zu öffnen
- Zeichnen Sie einen kleinen weißen Kreis (ungefähr 16x16 Pixel)
- Klicken Sie auf OK, um zu speichern
Wir erstellen zwei Schläger - einen für jeden Spieler:
Linker Schläger (Spieler 1):
- Erstellen Sie ein neues Sprite mit dem Namen
spr_paddle_left - Zeichnen Sie ein hohes, dünnes Rechteck, das wie eine Klammer ")" gekrümmt ist - blaue Farbe empfohlen
- Größe: ungefähr 16x64 Pixel
Rechter Schläger (Spieler 2):
- Erstellen Sie ein neues Sprite mit dem Namen
spr_paddle_right - Zeichnen Sie ein hohes, dünnes Rechteck, das wie eine Klammer "(" gekrümmt ist - rote Farbe empfohlen
- Größe: ungefähr 16x64 Pixel
- Erstellen Sie ein neues Sprite mit dem Namen
spr_wall - Zeichnen Sie ein durchgehendes Rechteck (grau oder weiß)
- Größe: 32x32 Pixel (wir dehnen es im Raum)
- Erstellen Sie ein neues Sprite mit dem Namen
spr_goal - Machen Sie es 32x32 Pixel groß
- Lassen Sie es transparent oder machen Sie es einfarbig (es wird im Spiel unsichtbar sein)
![]()
Das Wand-Objekt erzeugt Grenzen am oberen und unteren Rand des Spielbereichs.
- Klicken Sie mit der rechten Maustaste auf Objekte und wählen Sie Objekt erstellen
- Geben Sie ihm den Namen
obj_wall - Stellen Sie das Sprite auf
spr_wallein - Aktivieren Sie das Kontrollkästchen "Solid" - das ist wichtig zum Abprallen!
- Keine Ereignisse erforderlich - die Wand sitzt einfach dort

- Erstellen Sie ein neues Objekt mit dem Namen
obj_paddle_left - Stellen Sie das Sprite auf
spr_paddle_leftein - Aktivieren Sie das Kontrollkästchen "Solid"
Tastaturereignisse für die Bewegung hinzufügen:
Ereignis: Taste W drücken
- Ereignis hinzufügen → Tastatur → W drücken
- Aktion hinzufügen: Bewegen → Vertikale Geschwindigkeit setzen
- Setzen Sie die vertikale Geschwindigkeit auf
-8(bewegt sich nach oben)
Ereignis: Taste W loslassen
- Ereignis hinzufügen → Tastatur → W loslassen
- Aktion hinzufügen: Bewegen → Vertikale Geschwindigkeit setzen
- Setzen Sie die vertikale Geschwindigkeit auf
0(stoppt die Bewegung)
Ereignis: Taste S drücken
- Ereignis hinzufügen → Tastatur → S drücken
- Aktion hinzufügen: Bewegen → Vertikale Geschwindigkeit setzen
- Setzen Sie die vertikale Geschwindigkeit auf
8(bewegt sich nach unten)
Ereignis: Taste S loslassen
- Ereignis hinzufügen → Tastatur → S loslassen
- Aktion hinzufügen: Bewegen → Vertikale Geschwindigkeit setzen
- Setzen Sie die vertikale Geschwindigkeit auf
0(stoppt die Bewegung)
Ereignis: Kollision mit obj_wall
- Ereignis hinzufügen → Kollision → obj_wall
- Aktion hinzufügen: Bewegen → Abprallen (keine Konfiguration nötig — es prallt immer von soliden Objekten ab)
- Erstellen Sie ein neues Objekt mit dem Namen
obj_paddle_right - Stellen Sie das Sprite auf
spr_paddle_rightein - Aktivieren Sie das Kontrollkästchen "Solid"
Tastaturereignisse für die Bewegung hinzufügen:
Ereignis: Taste Pfeil oben drücken
- Ereignis hinzufügen → Tastatur → Pfeil oben drücken
- Aktion hinzufügen: Bewegen → Vertikale Geschwindigkeit setzen
- Setzen Sie die vertikale Geschwindigkeit auf
-8
Ereignis: Taste Pfeil oben loslassen
- Ereignis hinzufügen → Tastatur → Pfeil oben loslassen
- Aktion hinzufügen: Bewegen → Vertikale Geschwindigkeit setzen
- Setzen Sie die vertikale Geschwindigkeit auf
0
Ereignis: Taste Pfeil unten drücken
- Ereignis hinzufügen → Tastatur → Pfeil unten drücken
- Aktion hinzufügen: Bewegen → Vertikale Geschwindigkeit setzen
- Setzen Sie die vertikale Geschwindigkeit auf
8
Ereignis: Taste Pfeil unten loslassen
- Ereignis hinzufügen → Tastatur → Pfeil unten loslassen
- Aktion hinzufügen: Bewegen → Vertikale Geschwindigkeit setzen
- Setzen Sie die vertikale Geschwindigkeit auf
0
Ereignis: Kollision mit obj_wall
- Ereignis hinzufügen → Kollision → obj_wall
- Aktion hinzufügen: Bewegen → Abprallen (keine Konfiguration nötig — es prallt immer von soliden Objekten ab)

- Erstellen Sie ein neues Objekt mit dem Namen
obj_ball - Stellen Sie das Sprite auf
spr_ballein
Ereignis: Erstellen
- Ereignis hinzufügen → Erstellen
- Aktion hinzufügen: Bewegen → Losbewegen (Richtung)
- Wählen Sie im 3×3-Richtungsraster ein diagonales Feld (nicht gerade oben oder unten)
- Setzen Sie die Geschwindigkeit auf
6
Ereignis: Kollision mit obj_paddle_left
- Ereignis hinzufügen → Kollision → obj_paddle_left
- Aktion hinzufügen: Bewegen → Abprallen (keine Konfiguration nötig — es prallt immer von soliden Objekten ab)
Ereignis: Kollision mit obj_paddle_right
- Ereignis hinzufügen → Kollision → obj_paddle_right
- Aktion hinzufügen: Bewegen → Abprallen (keine Konfiguration nötig — es prallt immer von soliden Objekten ab)
Ereignis: Kollision mit obj_wall
- Ereignis hinzufügen → Kollision → obj_wall
- Aktion hinzufügen: Bewegen → Abprallen (keine Konfiguration nötig — es prallt immer von soliden Objekten ab)

Tore sind unsichtbare Bereiche hinter jedem Schläger. Wenn der Ball ein Tor erreicht, erzielt der gegnerische Spieler einen Punkt.
- Erstellen Sie ein neues Objekt mit dem Namen
obj_goal_left - Stellen Sie das Sprite auf
spr_goalein - Deaktivieren Sie "Sichtbar" - das Tor sollte unsichtbar sein
- Aktivieren Sie "Solid"
- Erstellen Sie ein neues Objekt mit dem Namen
obj_goal_right - Stellen Sie das Sprite auf
spr_goalein - Deaktivieren Sie "Sichtbar"
- Aktivieren Sie "Solid"
global.p1score/global.p2score sind benutzerdefinierte, benannte
Variablen, eine pro Spieler — die eingebaute Aktion Punkte setzen passt
hier nicht, da sie immer den einen eingebauten Punktestand schreibt und
keine Möglichkeit bietet, einen Variablennamen anzugeben. Variable
setzen ist die richtige Aktion für eine benutzerdefinierte benannte
Variable und unterstützt einen global-Gültigkeitsbereich:
Gehen Sie zurück zu obj_ball und fügen Sie diese Ereignisse hinzu:
Ereignis: Kollision mit obj_goal_left
- Ereignis hinzufügen → Kollision → obj_goal_left
- Aktion hinzufügen: Bewegen → Zu Startposition springen (setzt den Ball zurück)
- Aktion hinzufügen: Steuerung → Variable setzen
- Variable:
p2score - Wert:
1 - Gültigkeitsbereich:
global - Aktivieren Sie "Relativ" (addiert 1 zur aktuellen Punktzahl)
- Variable:
Ereignis: Kollision mit obj_goal_right
- Ereignis hinzufügen → Kollision → obj_goal_right
- Aktion hinzufügen: Bewegen → Zu Startposition springen
- Aktion hinzufügen: Steuerung → Variable setzen
- Variable:
p1score - Wert:
1 - Gültigkeitsbereich:
global - Aktivieren Sie "Relativ"
- Variable:

- Erstellen Sie ein neues Objekt mit dem Namen
obj_score - Kein Sprite erforderlich
Ereignis: Erstellen
- Ereignis hinzufügen → Erstellen
- Aktion hinzufügen: Steuerung → Variable setzen
- Variable:
p1score, Wert:0, Gültigkeitsbereich:global
- Variable:
- Aktion hinzufügen: Steuerung → Variable setzen
- Variable:
p2score, Wert:0, Gültigkeitsbereich:global
- Variable:
Ereignis: Zeichnen
- Ereignis hinzufügen → Zeichnen
- Aktion hinzufügen: Zeichnen → Text zeichnen
- Text:
Spieler 1: - X:
10 - Y:
10
- Text:
- Aktion hinzufügen: Zeichnen → Variable zeichnen
- Variable:
global.p1score - X:
100 - Y:
10
- Variable:
- Aktion hinzufügen: Zeichnen → Text zeichnen
- Text:
Spieler 2: - X:
10 - Y:
30
- Text:
- Aktion hinzufügen: Zeichnen → Variable zeichnen
- Variable:
global.p2score - X:
100 - Y:
30
- Variable:

- Klicken Sie mit der rechten Maustaste auf Räume und wählen Sie Raum erstellen
- Geben Sie ihm den Namen
room_pong - Stellen Sie die Raumgröße ein (z. B. 640x480)
Platzieren Sie die Objekte:
-
Wände: Platzieren Sie
obj_wall-Instanzen entlang der oberen und unteren Kanten des Raumes -
Linker Schläger: Platzieren Sie
obj_paddle_leftin der Nähe der linken Kante, vertikal zentriert -
Rechter Schläger: Platzieren Sie
obj_paddle_rightin der Nähe der rechten Kante, vertikal zentriert -
Ball: Platzieren Sie
obj_ballin der Mitte des Raumes -
Tore:
- Platzieren Sie
obj_goal_left-Instanzen entlang der linken Kante (hinter wo der Schläger ist) - Platzieren Sie
obj_goal_right-Instanzen entlang der rechten Kante
- Platzieren Sie
-
Punkteanzeige: Platzieren Sie
obj_scoreüberall (es hat keine Grafik, es zeichnet nur Text)
Raumlayout-Beispiel:
[WALL WALL WALL WALL WALL WALL WALL WALL WALL WALL]
[GOAL] [PADDLE_L] [BALL] [PADDLE_R] [GOAL]
[GOAL] [PADDLE_L] [PADDLE_R] [GOAL]
[GOAL] [GOAL]
[WALL WALL WALL WALL WALL WALL WALL WALL WALL WALL]

- Klicken Sie auf Ausführen oder drücken Sie F5, um Ihr Spiel zu testen
- Spieler 1 verwendet W (nach oben) und S (nach unten)
- Spieler 2 verwendet Pfeil oben und Pfeil unten
- Versuchen Sie, den Ball über den Schläger des Gegners zu treffen!
Machen Sie den Ball bei jedem Schlägertreffer schneller. speed lässt sich
hierfür nicht direkt verwenden — in dieser Engine ist das die
Animationsrate des Sprites, nicht die Bewegungsgeschwindigkeit — verfolgen
Sie die Ballgeschwindigkeit stattdessen in einer benutzerdefinierten
Variable:
- Fügen Sie im Erstellen-Ereignis von
obj_balldirekt nach der Aktion Losbewegen (Richtung) Steuerung → Variable setzen hinzu (Variable:ball_speed, Wert:6). - Fügen Sie in jedem Schläger-Kollisionsereignis nach der Abprallen-Aktion
Steuerung → Variable setzen hinzu (Variable:
ball_speed, Wert:0.5, "Relativ" aktiviert), dann Bewegen → Geschwindigkeit setzen mit Wertself.ball_speed, um die neue Geschwindigkeit bei gleichbleibender Richtung anzuwenden (Abprallen hat sie bereits umgekehrt).
Fügen Sie Sounds hinzu, wenn:
- Der Ball einen Schläger trifft
- Der Ball eine Wand trifft
- Ein Spieler einen Punkt erzielt
Fügen Sie eine Überprüfung im Zeichnen-Ereignis hinzu:
- Wenn
global.p1score >= 10, zeigen Sie "Spieler 1 gewinnt!" an - Wenn
global.p2score >= 10, zeigen Sie "Spieler 2 gewinnt!" an
| Problem | Lösung |
|---|---|
| Der Ball geht durch den Schläger | Stellen Sie sicher, dass Schläger "Solid" aktiviert haben |
| Der Schläger stoppt nicht an den Wänden | Fügen Sie ein Kollisionsereignis mit obj_wall hinzu |
| Die Punkte werden nicht aktualisiert | Überprüfen Sie, dass die Variablennamen genau übereinstimmen (global.p1score, global.p2score) |
| Der Ball bewegt sich nicht | Überprüfen Sie, dass das Erstellen-Ereignis die Bewegungsaktion hat |
Glückwunsch! Sie haben ein komplettes Zwei-Spieler-Pong-Spiel erstellt! Sie haben gelernt:
- Wie man Tastatureingaben für zwei verschiedene Spieler verarbeitet
- Wie man Tastenlos-Ereignisse verwendet, um die Bewegung zu stoppen
- Wie man Objekte zum Abprallen bringt
- Wie man globale Variablen zur Verfolgung von Punkten verwendet
- Wie man Text und Variablen auf dem Bildschirm anzeigt
- Anfänger-Vorgabe - Übersicht über Anfänger-Funktionen
- Anleitung: Breakout - Ein Brick-Breaker-Spiel erstellen
- Ereignis-Referenz - Komplette Ereignisdokumentation
- Vollständige Aktions-Referenz - Alle verfügbaren Aktionen