Inhaltsverzeichnis:

Erstelle dein erstes Rennspiel - Gunook
Erstelle dein erstes Rennspiel - Gunook

Video: Erstelle dein erstes Rennspiel - Gunook

Video: Erstelle dein erstes Rennspiel - Gunook
Video: Ein Autorenn-Spiel mit Scratch programmieren #1 – Ein Auto erstellen und zum Fahren bringen 2024, November
Anonim
Image
Image
Bild
Bild

Wenn Sie Python-Codierung durchgeführt haben und ein Spiel schreiben möchten, das Sie möglicherweise in Pygame Zero haben.

In diesem Tutorial werden wir ein einfaches Rennspiel schreiben.

Schritt 1: Der umfassende Überblick

Das Pygame-Modul fügt viele Funktionen hinzu, die Ihnen helfen, Spiele in Python zu schreiben.

Pygame Zero geht noch einen Schritt weiter, damit Sie den mühsamen Prozess des Erstellens all dieser Spielschleifen und des Einrichtens Ihrer Programmstruktur überspringen können.

Pygame Zero ist eine gute Wahl für alle, die mit dem Schreiben von Computerspielen auf dem Raspberry Pi oder einem beliebigen Linux-Rechner beginnen möchten.

Du brauchst:

  • Maschine mit Linux-Betriebssystem
  • Editor zum Schreiben von Python-Programmen
  • Klaviatur
  • Etwas Fantasie

Dateien:

github.com/AhmNouira/-Racing-Game

Schritt 2: Voraussetzungen

Zuerst werde ich meinen Laptop mit Ubuntu 18.04 OS verwenden. Dann führen wir das Spiel in Schritt 8 auf Raspberry Pi aus.

Bevor Sie mit diesem Tutorial fortfahren, stellen Sie sicher, dass Sie als Benutzer mit sudo-Berechtigungen angemeldet sind.

pip für Python 3 installieren

Beginnen Sie mit der Aktualisierung der Paketliste mit dem folgenden Befehl:

sudo apt-Update

Verwenden Sie den folgenden Befehl, um pip für Python 3 zu installieren:

sudo apt installieren python3-pip

Überprüfen Sie die Installation, indem Sie die Pip-Version überprüfen:

pip3 --version

Pygame Zero installieren

pip3 install pgzero --user

Dadurch wird auch Pygame installiert. Vorkompilierte Pygame-Pakete

Der erste Schritt auf Ihrer Reise besteht also darin, Python 3 IDLE oder Ihren bevorzugten Python-Editor zu öffnen.

Schritt 3: "Hallo Welt" in Pygame Zero

Standardmäßig wird das Pygame Zero-Fenster mit einer Größe von 800 Pixel breit und 600 Pixel hoch geöffnet. Sie können anpassen

Für die Größe Ihres Fensters gibt es zwei vordefinierte Variablen, die Sie festlegen können, wenn Sie WIDTH = 700 HIGH = 800 angeben.

Pygame zero bietet vordefinierte Funktionen, um die normalerweise ausgeführte Spielschleife zu handhaben:

Die draw()-Funktion

Wir können diese Funktion genauso in unser Programm schreiben, wie wir normalerweise eine Funktion in Python definieren würden.

Pygame Zero folgt denselben Formatierungsregeln wie Python, daher müssen Sie darauf achten, Ihren Code richtig einzurücken.

#!/usr/bin/python3 # setze den Interpreter

import pgzrun # import pgzero module WIDTH = 700 # Breite des Fensters HEIGHT = 800 # Höhe des Fensters def draw(): # pygame zero draw function screen.fill((128, 128, 128)) # den Bildschirm mit RGB füllen color screen.draw.text("Hello World!", (270, 320), # draw "Hello World!" color = (255, 255, 255), fontsize = 40) pgzrun.go()

Zunächst müssen Sie Ihre Programmdatei speichern und ihr einen Namen geben.

Öffnen Sie dann ein Terminalfenster, gehen Sie zu Ihrem Dateispeicherort und geben Sie Folgendes ein:

./.py

Schritt 4: Zeichnen Sie Ihren Schauspieler

Zeichnen Sie Ihren Schauspieler
Zeichnen Sie Ihren Schauspieler

Jetzt, da wir unser Bühnenbild haben, können wir unsere Schauspieler erstellen, sie sind dynamische Objekte in Pygame Zero.

Wir können einen Actor laden, indem wir oben im Programm eingeben:

Auto = Schauspieler("Rennwagen")

In Pygame Zero müssen unsere Bilder in einem Verzeichnis namens images neben unserer Programmdatei gespeichert werden. Unser Schauspieler würde also nach einer Bilddatei im Bilderordner namens racecar-p.webp

Sie können seine Position auf dem Bildschirm festlegen, indem Sie Folgendes eingeben:

auto.pos = 350, 560

Danach können wir in unserer draw()-Funktion eingeben

car.draw() # zeichne unseren Rennwagen an seiner definierten Position

Das vollständige Programm wird wie folgt aussehen:

#!/usr/bin/python3

import pgzrun WIDTH = 700 # Breite des Fensters HEIGHT = 800 # Höhe des Fensters car = Actor("racecar") car.pos = 350, 560 def draw(): # pygame zero draw function screen.fill((128, 128, 128)) # fülle den Bildschirm mit car.draw() pgzrun.go()

Testen Sie Ihr Programm, um sicherzustellen, dass dies funktioniert.

Schritt 5: Steuern Sie den Schauspieler

Kontrolliere den Schauspieler
Kontrolliere den Schauspieler

Sobald wir unser Auto auf dem Bildschirm gezeichnet haben, besteht der nächste Schritt darin, dem Spieler die Möglichkeit zu geben, es zu bewegen.

Wir können dies mit Tastendruck tun. Wir können den Status dieser Schlüssel in einer anderen vordefinierten Funktion namens update() lesen.

Die update()-Funktion

Diese Funktion wird während des Spiels ständig überprüft.

Wir müssen etwas Code schreiben, um Tastendrücke von Pfeiltasten zu erkennen und auch etwas dagegen zu unternehmen.

Also werden wir diese Funktion in unser Programm aufnehmen

def update():

if keyboard.left: car.x -=2 if keyboard.right: car.x +=2 if keyboard.up: car.y -=2 if keyboard.down: car.y +=2

Diese Codezeilen bewegen den Car Actor nach links, rechts, vorwärts und rückwärts.

Schritt 6: Aufbau der Strecke

Bau der Strecke
Bau der Strecke

Da wir jetzt ein Auto haben, das wir lenken können, brauchen wir eine Strecke, auf der wir fahren können.

Wir werden unseren Track aus Actors aufbauen, eine Reihe nach der anderen. Wir müssen einige Listen erstellen, um den Überblick über die von uns erstellten Schauspieler zu behalten.

Wir müssen auch noch ein paar weitere Variablen für die Strecke einrichten.

Dann lassen Sie uns eine neue Funktion namens makeTrack() erstellen. Die Funktion fügt einen Track Actor links und einen rechts hinzu, beide verwenden das Bild bare-p.webp

trackLeft = # Liste zum Speichern der linken Sperren

trackRight = # Liste zum Speichern der rechten Balken trackCount = 0 # Zähle die Anzahl der Balken trackPosition = 350 trackWidth = 150 # Breite zwischen linker und rechter Balken def makeTrack(): # Funktion um links und rechts eine Balken zu machen global trackCount, trackLeft, trackRight, trackPosition, trackWidth trackLeft.append(Actor("bare", pos = (trackPosition-trackWidth, 0))) trackRight.append(Actor("bare", pos = (trackPosition + trackWidth, 0))) TrackCount +=1

Als nächstes müssen wir die Streckenabschnitte auf dem Bildschirm zum Auto hin verschieben.

Lassen Sie uns eine neue Funktion namens updateTrack() schreiben. Diese Funktion aktualisiert, wo die Track-Blöcke erscheinen. Die Track-Stücke werden durch Zufallszahlen erstellt, sodass jede Wiedergabe anders ist.

trackDriction = False

SPEED = 4 # setzt die Geschwindigkeit des Spiels aus dem Zufallsimport randint # importiert die Randint-Klasse aus dem Zufallsmodul def updateTrack(): global trackCount, trackPosition, trackDirection, trackWidth, SPEED b = 0 while b 32: if trackDirection == False: trackPosition += 16 if trackDirection == True: trackPosition -= 16 if randint(0, 4) == 1: trackDirection = not trackDirection if trackPosition > 700 - trackWidth: trackDirection = True wenn trackPosition < trackWidth: trackDirection = False makeTrack() # erstellt einen neuen Track am oberen Bildschirmrand

Bitte beziehen Sie sich auf die Zip-Datei unten mit dem Namen "RaceGameDemo".

Wenn wir unseren Code gerade ausführen, sollten wir eine Spur sehen, die sich zum Auto hin schlängelt. Das einzige Problem ist, dass wir das Auto über die Gleisschranken bewegen können und das Auto mit einer Kollisionserkennung darin halten wollen.

Schritt 7: Autounfall

Autounfall
Autounfall
Autounfall
Autounfall
Autounfall
Autounfall

Wir müssen sicherstellen, dass unser Auto nicht die Strecke berührt.

wir können auch mit der Methode colliderect() in unserer updateTrack()-Funktion auf Kollisionen testen.

In diesem Spiel haben wir drei verschiedene Zustände des Spiels, die in unserer Variablen gameStatus gespeichert sind:

  • gameStatus == 0 # Spiel läuft
  • gameStatus == 1 # Autounfall
  • gameStatus == 2 # Spiel beendet

Wir müssen unsere draw()-Funktion und unsere update()-Funktion ändern, um auf die Variable gameStatus zu reagieren.

Feinschliff

Jetzt müssen wir nur noch etwas anzeigen, wenn gameStatus auf 1 oder 2 gesetzt ist, zum Beispiel sollten wir ein Rot anzeigen

Flagge, wenn das Auto abgestürzt ist. Wir können das mit dem folgenden Code tun:

screen.blit("redflag", (230, 230))

Um zu sehen, ob das Auto das Ziel erreicht hat, sollten wir zählen, wie viele Streckenabschnitte erstellt wurden und dann, wenn wir vielleicht bei 200 sind, gameStatus auf 2 setzen. Dann die karierte Flagge anzeigen:

screen.blit("finishflag", (230, 230))

Wir werden auch Text wie den aktuellen Spielstand auf dem Bildschirm anzeigen.

Sehen Sie sich die vollständige Codeliste an, um zu sehen, wie das alles zusammenpasst.

Schritt 8: Führen Sie das Spiel auf Raspberry Pi. aus

Führen Sie das Spiel auf Raspberry Pi. aus
Führen Sie das Spiel auf Raspberry Pi. aus
Führen Sie das Spiel auf Raspberry Pi. aus
Führen Sie das Spiel auf Raspberry Pi. aus

Auf Raspberry Pi ist pgzero seit der Veröffentlichung von Raspbian Jessie im September 2015 standardmäßig installiert.

Aktualisieren Sie einfach Ihren Raspberry Pi mit dem Befehl:

sudo apt-get update

Gehen Sie zu Ihrem Dateispeicherort und geben Sie das Terminal ein.

pgzrun.py

Schritt 9: Haben Sie gewonnen?

Hast du gewonnen?
Hast du gewonnen?

Sie können das Spiel einfacher oder schwerer machen, indem Sie die TrackWidth-Variable ändern, um der Spur eine andere Breite zu geben. Sie können den Wert von SPEED ändern, um die Spur schneller oder langsamer zu bewegen.

Schritt 10: Fazit

Pygame Zero ist eine gute Wahl für jeden, der mit dem Schreiben von Computerspielen beginnen möchte.

Wenn Sie Fragen haben, können Sie natürlich einen Kommentar hinterlassen. Um mehr über meine Arbeiten zu sehen, besuchen Sie bitte meinen Kanal:

meinYouTube

mein Twitter

myLinkedin

Vielen Dank für das Lesen dieses instructable ^^ und einen schönen Tag. Tschüss. Ahmed Nouira.

Empfohlen: