Erstellen Sie eine Hommage an Excitebike mit Python

Erstellen Sie eine Hommage an Excitebike mit Python

Excitebike ist ein Side-Scroller-Spiel, bei dem Sie ein Motorrad über Sprünge steuern, Hindernisse umfahren und zur Ziellinie rasen.





Nintendo brachte dieses BMX-Rennspiel erstmals für das NES auf den Markt. Von da an modernisierte das Unternehmen Excitebike und veröffentlichte es auf dem N64 und schließlich auf der Wii.





Es gibt nicht mehr viele NES-Konsolen, was es schwierig macht, Excitebike wieder zu spielen. Dank einiger Retro-Fans im Wireframe Magazine kann ein Schnipsel Python-Code diesen NES-Klassiker für stundenlangen Spaß auf Ihrem Raspberry Pi oder Heim-PC nachbilden.





Wie erstelle ich eine Batch-Datei Windows 10
MAKEUSEOF VIDEO DES TAGES

Abrufen des Codes und Einrichten

Obwohl Sie nano oder vim verwenden können, um Ihren Python-Code zu bearbeiten, sollten Sie einen voll funktionsfähigen nutzen Texteditor oder IDE .

Sie müssen Pygame Zero installieren, um die Funktionen dieser Hommage an Excitebike zu unterstützen. Pygame Zero enthält Python-Module, auf die sich Spieleentwickler konzentrieren können, ohne einfache Grundlagen wiederholen zu müssen.



Wenn Sie python3 nicht auf Ihrem PC installiert haben, können Sie dies tun laden Sie die neueste Version herunter direkt aus Python. Sie werden es auch wollen Stellen Sie sicher, dass Sie PIP installiert haben zu.

Wenn die neueste Version von Python und PIP installiert ist, öffnen Sie Ihr PowerShell- oder Linux-Terminal und geben Sie Folgendes ein:





pip3 install pgzero 

Zuletzt müssen Sie eine Kopie des Python-Codes aus dem GitHub-Repository des Wireframe-Magazins abrufen. Geben Sie den folgenden Befehl in ein Terminal ein:

git clone https://github.com/Wireframe-Magazine/Wireframe-66.git

Alternativ können Sie Laden Sie den gezippten Code herunter direkt von der Wireframe-GitHub-Seite.





Den Code aufschlüsseln

Um zu verstehen, was der Code tut, führen Sie zuerst das Excitebike-Spiel aus. Navigieren Sie dazu zum Quellcode und führen Sie ihn dann mit Pygame Zero aus:

cd Wireframe-66/source-code-excitebike/ 
pgzrun exitebike.py

Anschließend können Sie die Datei exitebike.py mit einem Texteditor öffnen, um den Code anzuzeigen.

So drucken Sie ein Verzeichnis in Windows 10
  Excitebike-Python-Code-Snippet

Das zeichnen Funktion zeichnet den Hintergrund, während sich das Fahrradbild bewegt. EIN ' bleibe ' bezieht sich auf einen Block, der auf dem Bildschirm gezeichnet wird. Das Wort ' Hintergrund,' bezieht sich auf das Hintergrundbild (das Verknüpfen der Bilder mit dem Hintergrundblock ist den importierten Pygame Zero-Modulen zu verdanken).

def draw(): 
screen.blit("background", (0, 0))
drawTrack()
bike.draw()
screen.draw.text("LAP TIME: "+str(int(time.time() - startTime)), (20, 555),color=(255,255,255) , fontsize=50)
screen.draw.text("LAST LAP: "+str(lastLap), topright = (780, 555),color=(255,255,255) , fontsize=50)

Sie werden auch Berechnungen für die Rundenzeit und die letzte Runde bemerken (dies wird durch den Zeitzähler am unteren Bildschirmrand dargestellt). Die Rundenzeit berechnet ständig die Differenz zwischen dem ersten Drücken der rechten Pfeiltaste (Startzeit) und der aktuellen Zeit.

Die letzte Runde ist eine ähnliche Berechnung. Anstelle der Startzeit wird die Zeit berechnet, ab der das Motorrad eine vordefinierte Streckenposition passiert (als bezeichnet TrackPos < -4800 im Code). Die folgenden Elemente in Anführungszeichen stellen ein Bild dar.

Dieser Code zeichnet in bestimmten Abständen und an bestimmten Positionen auf dem Bildschirm Bildblöcke auf den Bildschirm. Das gelieferte Crowd-Bild ist nur 100 Pixel breit. Der Code unten teilt dem Computer jedoch mit, wann er das Bild zeichnen soll, sodass es so aussieht, als befände sich hinter dem sich bewegenden Motorrad eine simulierte Menschenmenge.

Die Felsbilder werden auf dem Bildschirm in zwei Teilen angezeigt. Die zweite und dritte Codezeile unten arbeiten zusammen, um die Szenerie auf ordentliche Weise zu simulieren.

Sobald Sie eine Sicherungskopie des Python-Codes erstellt haben, versuchen Sie, die folgenden Zahlen zu ändern, um zu sehen, was mit den Felsen auf dem Bildschirm passiert!

screen.blit("crowd1", ((t*100)+trackOffset-100, 0)) 
screen.blit("rock1", ((t*100)+trackOffset-100, 270))
screen.blit("rock1", ((t*100)+trackOffset-50, 270))

Möchten Sie Ihr Motorrad durch einen Monstertruck, ein Vierrad oder ein anderes Fahrzeug ersetzen? Vielleicht möchten Sie mit einem Einhorn über die Ziellinie rasen?

Alles, was Sie tun müssen, ist ein 50 x 50 Pixel großes Bild (mit transparentem Hintergrund) zu zeichnen. Legen Sie dann diese Datei (picture.png) in das ' Bilder ' Ordner (innerhalb der Quellcode-excitebike Mappe). Sie sollten zwei Bilder erstellen (eines mit einer leicht erhöhten Höhe), um etwas Realismus hinzuzufügen. Alles, was Sie tun müssen, ist, den Verweis auf ' Tu es hier:

bike = Actor('bike0', center=(150, 350), anchor=('center', 'bottom'))
  Excitebike Python-Spiel mit Truck

Stellen Sie außerdem sicher, dass Sie eine Suchen-und-Ersetzen-Aktion mit dem Namen des Bildes (ohne die Bilderweiterung) durchführen.

checkBikeRamp() ist die Funktion, die die Y-Achse berechnet, damit Ihr Motorrad (oder LKW) die Rampe hinauffährt (und wenn Sie Glück haben, ernsthaft Luft bekommt). Das Tastatur.rechts und keyboard.left Parameter sind in der definiert aktualisieren() Funktion.

Diese Codebits weisen den Computer an, das Motorrad zu verlangsamen oder zu beschleunigen (je nachdem, welche Taste der Benutzer auf der Tastatur drückt). Übersetzung: Je schneller sich Ihr Motorrad bewegt, desto höher ist die Nummer der Y-Achse (oder sehr großer Sprung).

Quer, die on_key_down(Taste) Funktion schickt Ihr Motorrad in einen Sturzflug.

if key.name == "DOWN": 
bike.direction = 1
bike.laneY = limit(bike.laneY + 50, 375, 525)
bike.y += bike.direction

Das Mist Lane Parameter verlangsamt Ihr Motorrad anhand der folgenden Berechnung:

windows 7 besser als windows 10
muckLane = int((bike.laneY-375)/50)+1

Zeile 66 des Codes bestimmt, wann das „Muck“-Bild auf dem Bildschirm angezeigt wird. Jetzt, da der Computer weiß, wann Ihr Motorrad über den Dreck fährt, wird er Ihre Motorradgeschwindigkeit halbieren, wenn Sie über den Dreck auf der Strecke fahren. Ändern Sie den muckLane-Wert von /50 auf /25 oder /75, um zu sehen, was als Nächstes passiert.

Rennfahrer (ähm, Python-Programmierer)! Starten sie ihre Motoren!

Auch wenn Sie sich nicht wohl dabei fühlen, diese Hommage an Excitebike von Grund auf neu zu programmieren, ist dieser Code immer noch eine großartige Einführung. Indem Sie es optimieren und die visuellen Auswirkungen der Änderungen erkennen, können Sie viel lernen. Wirst du versuchen, deinem Spiel weitere Funktionen oder KI-Rennfahrer hinzuzufügen? Tue es!

Mit ein wenig Python-Übung auf dem Buckel können Sie auch versuchen, verschiedene Level hinzuzufügen, sobald Sie die Ziellinie nach 4 oder 5 Mal passiert haben. Außerdem möchten Sie vielleicht Belohnungen für den ersten, zweiten und dritten Platz hinzufügen. Wenn Sie auf dem ersten Platz sind, fügen Sie auch eine Audiodatei zum Jubeln der Menge hinzu! Es gibt so viele Möglichkeiten.

Wenn Sie mit Ihren Excitebike-Verbesserungen zufrieden sind, warum sollten Sie sich nicht an die Entwicklung eines Textadventure-Spiels machen? Es gibt viele verschiedene Stücke, die sicherstellen, dass Sie stunden-, tage- oder sogar wochenlang etwas Aufregendes lernen!