Wie man Pygame lernt

Pygame ist ein plattformübergreifender Satz von Python-Modulen zum Erstellen von Spielen. Die Module sind so konzipiert, dass sie einfach und benutzerfreundlich sind und Spaß machen - ein wichtiger Teil der Pygame-Ideologie. In diesem Beitrag werde ich Ihnen zeigen, wie Sie Pygame verwenden und Tipps und Ressourcen zum Lernen teilen.

In diesem Handbuch wird davon ausgegangen, dass Sie bereits wissen, wie Sie in Python programmieren. Wenn dies nicht der Fall ist, lesen Sie den besten Weg, Python zu lernen, Python zu lernen, das Python-Lernprogramm, Codecademy oder Python auf die harte Tour zu lernen.

Warum Pygame??

Es ist einfach

Python wird oft als die beste "erste Programmiersprache" angesehen, die erlernt werden soll, und wurde für seine leicht erlernbare Syntax und seine allmähliche Lernkurve gelobt. Aus diesem Grund lernen viele neue Programmierer zunächst Python. 

Pygame erweitert Python, übernimmt die Python-Philosophie und soll einfach zu bedienen sein. Außerdem können aufstrebende neue Spieleentwickler ohne Programmierkenntnisse Pygame verwenden, da sie Python schnell auf den Markt bringen können.

Es hat eine große Community

Pygame ist seit 2000 erhältlich und seitdem hat sich eine große Community gebildet. Die Community behauptet, Pygame wurde millionenfach heruntergeladen und hatte Millionen von Besuchen auf ihrer Website. “ Infolge der großen Community werden gemeldete Fehler schnell behoben, es steht schnell Hilfe zur Verfügung und es wurden zahlreiche zusätzliche Funktionen hinzugefügt. Darüber hinaus sorgt die Community dafür, dass die Entwicklung von Pygame Spaß macht. Zum Beispiel wird alle zwei Jahre ein Python-Spielwettbewerb veranstaltet, um die Plattform zu fördern. Die Größe der Community unterscheidet Pygame von den anderen Python-Frameworks.

Es ist Open Source

Die Tatsache, dass Pygame Open Source ist, bedeutet, dass Fehler in der Regel sehr schnell von der Community behoben werden. Es bedeutet auch, dass Sie Pygame nach Ihren Bedürfnissen erweitern und der Community möglicherweise sogar etwas zurückgeben können. 

Pygame ist in C geschrieben, und ein Blick auf den Code ist eine großartige Möglichkeit, um besser zu verstehen, wie Python und Pygame funktionieren.

Es ist sehr tragbar

Pygame ist äußerst portabel, da es Windows, Linux, Mac OS X, BeOS, FreeBSD, NetBSD, OpenBSD, BSD / OS, Solaris, IRIX und QNX unterstützt. Neben diesen Computerplattformen gibt es eine Pygame-Untermenge für Android. Darüber hinaus benötigt Pygame kein OpenGL und kann DirectX, WinDIB, X11, Linux Framebuffer und viele andere APIs zum Rendern von Grafiken verwenden. Dies stellt sicher, dass eine größere Anzahl von Benutzern Ihr Spiel spielen kann.

Fertig machen

Installation

Vergewissern Sie sich vor der Installation von Pygame, dass Sie Python installiert haben. Sie werden feststellen, dass es zwei Versionen von Python gibt: Python 2 und Python 3. Ich empfehle persönlich, dass Sie Python 2 neben Pygame verwenden, da Python 2 häufiger ist und es Pygame-Module gibt, die Python 3 nicht unterstützen wäre immer noch in der Lage, mit Python 3 großartige Spiele zu erstellen.

Nachdem Sie sichergestellt haben, dass eine Version von Python auf Ihrem Computer ausgeführt wird, können Sie Pygame von der Download-Website herunterladen.

IDEs

Neben der Installation der Pygame-Module empfehle ich Ihnen, eine Python-IDE zu installieren, die Ihnen das Erstellen und Kompilieren von Spielen erleichtert.

Beachten Sie, dass eine integrierte Entwicklungsumgebung, bekannt als IDLE, bereits in Python enthalten ist. IDLE wurde jedoch häufig aus Gründen der Benutzerfreundlichkeit kritisiert, und ich persönlich kann es nicht empfehlen.

Meine persönliche Präferenz ist PyScripter, aber PyCharm, Wing IDE, Python-Tools für Visual Studio und Netbeans sind alles mögliche Optionen. Wie immer hängt die Wahl einer IDE von den persönlichen Vorlieben ab. Ich empfehle Ihnen, alle auszuprobieren und zu sehen, welche Ihnen am besten gefällt. 

Ressourcen

Hier sind einige Ressourcen, die Ihnen beim Einstieg in Pygame helfen.

Universität von Colorado

Die University of Colorado bietet eine großartige Einführung in Pygame. Die beigefügten Folien stellen sicher, dass Sie die wichtigsten Komponenten von Pygame kennen und verwenden können. Nachdem Sie dieses Dokument gelesen haben, sollten Sie die Kernkonzepte von Pygame verstehen.

Tutorials

Es gibt eine Vielzahl von Tutorials, die Sie Pygame Schritt für Schritt beibringen. Ich habe drei meiner Favoriten ausgewählt:

  • PyGame-Tutorials - Einfache Einführung in die Spielprogrammierung: Beschreibt die grundlegenden Funktionen von Pygame
  • PyGame Basics Tutorial: Eine siebenteilige Serie von Anfang an mit einem besonders guten Abschnitt zu Musik und Soundeffekten
  • Das Python-Spielbuch: Beginnt mit den Grundlagen, vermittelt jedoch fortgeschrittene Konzepte wie Sprites, pixelgenaue Kollisionserkennung und Scrollen

Videoserie

Spieleentwicklung in Python 3 With Pygame ist eine Video-Tutorialserie, die als YouTube-Playlist verfügbar ist. Die Serie enthält 29 Videos, beginnend mit der Anzeige von Bildern und dem Rendertext. Anschließend werden Animationen und Benutzereingaben gelehrt. Wenn Sie Video-Tutorials den textbasierten Tutorials vorziehen, verpassen Sie diese Serie nicht. 

Bücher

Wenn Sie sowohl für Python als auch für Pygame Anfänger sind, empfehle ich einen Blick auf Invent Your Own Computerspiele mit Python. Dieses Buch beginnt mit dem Erlernen der Grundlagen von Python und unterstützt diese Anleitung, indem es Ihnen zeigt, wie Sie einfache Befehlszeilen-Spiele erstellen. Nachdem Sie sichergestellt haben, dass Sie die Grundlagen von Python verstehen, wird das Buch weitergeführt, um Pygame zu unterrichten.

Auf der anderen Seite, wenn Sie direkt nach Pygame springen möchten, ist Making Games with Python & Pygame das richtige Buch für Sie. Am Ende dieses Buches haben Sie 11 Spiele erstellt und können nun alleine loslegen. 

Alle diese Bücher sind kostenlos und online, sodass Sie sofort loslegen können!

Nächste Schritte

Lesen Sie die Dokumentation und das Wiki

Ein Blick auf die Dokumentation ist ein wichtiger Schritt auf dem Weg zur Pygame-Meisterschaft. Hier finden Sie Dokumente, Anleitungen und Referenzen, die alle Funktionen von Pygame abdecken. Die Dokumentation ermöglicht es Ihnen, Kenntnisse über alle Aspekte von Pygame zu erlangen, und geht über das hinaus, was Sie durch die früheren Ressourcen gelernt hätten.

Das Pygame-Wiki hilft auch bei der Beantwortung von Fragen zur Plattform. Zögern Sie also nicht, einen Blick darauf zu werfen.

Schauen Sie sich den Code an

Ein Blick auf den Code hilft Ihnen zu verstehen, wie verschiedene Teile von Pygame interagieren, um ein komplettes Spiel zu erstellen. Beispiele zeigen Ihnen bewährte Vorgehensweisen und Sie können auf dem Weg einige Tricks aufgreifen.

In den offiziellen Pygame-Beispielen finden Sie Informationen zur Verwendung einzelner Module. In öffentlichen Pygame-Projekten in GitHub finden Sie einen vollständigen Code. 

An der Community teilnehmen

Pygame hat einen aktiven IRC-Kanal und eine Mailingliste. (Die Mailingliste ist auch in einer forumähnlichen Oberfläche verfügbar.) Mitglieder der Community möchten Anfängern gerne helfen. Scheuen Sie sich also nicht, Fragen zu stellen. 

Wenn Sie ein Pygame-Experte werden, tragen Sie zur Gemeinschaft bei und helfen Sie anderen. Wenn Sie andere unterrichten, können Sie lernen und die Konzepte, die Sie bereits kennen, verfestigen. 

Machen Sie Ihr eigenes Spiel

Die oben bereitgestellten Ressourcen sind mehr als ausreichend, um ein solides Verständnis von Pygame zu erlangen. Wenn Sie sich durch die Ressourcen arbeiten, haben Sie außerdem mehrere Spiele erstellt. Ich bitte Sie jedoch dringend, Ihre eigene Kreation zu gestalten. Mehr als nur Tic-Tac-Toe oder Concentration zu bauen. Jeder kann einem Tutorial folgen, um ein Spiel zu erstellen. Lassen Sie Ihrer Kreativität freien Lauf und stellen Sie Ihre Fähigkeiten unter Beweis Original Spiel.  

Entwicklungstipps

Verwenden Sie Gruppen

Pygame verfügt über eine wirklich mächtige Funktion, die als bekannt ist Gruppen, durch die pygame.sprite.Group Klasse. Eine Gruppe ist im Wesentlichen ein Container für Sprite-Objekte.

 Zum Beispiel, wenn ich mehrere erzeuge Kugel Sprites, ich kann sie zu einer Gruppe mit dem Namen hinzufügen Kugeln:

bullets = pygame.sprite.Group () für i in Reichweite (10): bullets.add (Bullet ())

Das Arbeiten mit Gruppen ist viel schneller als das Arbeiten mit einzelnen Sprites. Sie können einfach anrufen Group.update () um alle Sprites innerhalb einer Gruppe zu aktualisieren, oder Group.draw () den Inhalt der Gruppe zu deinem Oberfläche. Darüber hinaus erleichtern Gruppen die Kollisionserkennung, da Pygame eine Methode zur Überprüfung auf Kollisionen zwischen zwei Gruppen hat: pygame.sprite.groupcollide ()

Wandeln Sie Ihre Oberflächen um

Stellen Sie sicher, dass Sie a konvertieren Oberfläche wann immer Sie eine erstellen, indem Sie die Konvertieren() Methode. Diese Methode ändert das Pixelformat von a Oberfläche an die Anzeige anpassen Oberfläche. Wenn diese Methode nicht aufgerufen wird, muss jedes Mal eine Pixelkonvertierung durchgeführt werden, wenn Sie etwas zu Ihrem Objekt machen Oberfläche-eine sehr langsame Operation.

 Zum Beispiel anstelle von:

ballPicture = pygame.image.load ('ball.png')

 Anruf:

ballPicture = pygame.image.load ('ball.png'). convert ()

oder wenn Sie das Alpha einstellen müssen:

ballPicture = pygame.image.load ('ball.png'). convert_alpha ()

Beachten Sie, dass convert_alpha () führt nicht zu derselben Leistungssteigerung wie Konvertieren(), da das Pixelformat nicht exakt mit dem übereinstimmt Oberfläche Fenster. Trotzdem führt dies zu einer verbesserten Blitgeschwindigkeit.

Update vs. Flip

Beide pygame.display.update () und pygame.display.flip () Aktualisieren Sie den Inhalt des Spielfensters. Durch einfaches Aufrufen dieser Methoden wird jedoch der gesamte Bildschirm aktualisiert, wodurch die Bildrate stark verlangsamt wird. Ziehen Sie stattdessen in Betracht, nur einen bestimmten Teil des Bildschirms (wo immer Änderungen vorgenommen werden sollen) durch Aufruf zu aktualisieren pygame.display.update ()und vorbei ein Rect Darstellen des zu aktualisierenden Bereichs in der Methode. Auf diese Weise sehen Sie eine erhebliche Verbesserung der Leistung.

Beachten Sie, dass manchmal der gesamte Bildschirm aktualisiert werden muss. In diesen Fällen funktionieren beide Methoden einwandfrei. 

Zusätzliche Module

Ich erinnere daran, dass ich Pygames große und hilfreiche Community zuvor erwähnt habe. Ich empfehle Ihnen, diese Community zu nutzen, indem Sie zusätzliche Module herunterladen, die von seinen Mitgliedern erstellt wurden. Diese Module erleichtern die schnelle Entwicklung Ihres Spiels und vereinfachen die Erstellung von Spielen.

 Meine persönlichen Favoriten sind:

  • Pyganim: Erleichtert das Hinzufügen von Sprite-Animationen zu Ihren Spielen
  • input.py: Vereinfacht die Handhabung von Steuerelementen in Pygame, wenn mehrere Controller-Methoden verwendet werden
  • Python-Spielprogramme: Eine große Sammlung von Pygame-Dienstprogrammen

Weitere Bibliotheken finden Sie auf der Pygame-Website.

Ausführbare Spiele

Wenn das Spiel wirklich plattformübergreifend sein soll, müssen Sie das Szenario berücksichtigen, in dem Ihre Benutzer Python und Pygame nicht auf ihren Computern installiert haben.

Berücksichtigen Sie die Erweiterung py2exe, um Windows ausführbar zu machen, und die Erweiterung py2app, um Anwendungen für Mac OS X zu erstellen. 

Vitrine

Pygame wurde nicht sehr oft kommerziell verwendet, da Python nicht für seine Spielentwicklungsfähigkeiten bekannt ist. Dennoch wurde Pygame verwendet, um viele erfolgreiche unabhängige Spiele zu erstellen:

Galcon

Galcon ist ein galaktisches Action-Strategiespiel für mehrere Spieler und möglicherweise das bekannteste Spiel, das mit Pygame entwickelt wurde. Es wurde 2007 von GameTunnel, einer der ersten Bewertungsseiten für Indie-Spiele, als Top 10-Spiel des Jahres ausgezeichnet.

Bünde in Flammen

Frets on Fire, ein Open-Source-Guitar-Hero-Klon, wurde in Pygame als Eintrag für den Assembly Development Competition 2006 von Unreal Voodoo erstellt.

Gefährliche High School Girls in Schwierigkeiten!

Das mehrfach ausgezeichnete Rollenspiel "Dangerous High School Girls in Trouble!" Des unabhängigen Entwicklers Mousechief war Finalist bei IndieCade 2008.

PyWeek

PyWeek ist eine halbjährliche Herausforderung bei der Programmierung von Spielen, die nur in Python erstellte Spiele akzeptiert. So werden viele Einsendungen mit Pygame erstellt. Eine Liste der früheren Gewinner ist auf der PyWeek-Website verfügbar.

Fazit

In diesem Beitrag habe ich Ihnen eine Einführung in die Spieleentwicklung mit Python und Pygame gegeben. Ich hoffe, dass es mir gelungen ist, Sie für Pygame zu interessieren und Ihnen mehr darüber beizubringen. Zögern Sie nicht, Ihre Fragen hier oder in verschiedenen Pygame-Foren zu stellen. Sie sind jetzt bereit, Ihre Reise in die Welt von Pygame zu beginnen. Viel Glück!