Dieses Mal werde ich Ihnen vorstellen, wie Sie Python verwenden, um einfache Spiele zu entwickeln. Was sind die Vorsichtsmaßnahmen bei der Verwendung von Python, um kleine Spiele zu entwickeln? ein Blick.
Einführung
Die Python-Sprache ist in letzter Zeit nicht nur im Bereich des wissenschaftlichen Rechnens beliebt geworden, sondern wird auch verwendet in Spielen, Hintergründen usw. Dieser Blog-Beitrag wird den formalen Projektentwicklungsprozess verfolgen und Ihnen Schritt für Schritt beibringen, ein Python-Spiel zu schreiben, um den Spaß daran zu spüren. Das dieses Mal entwickelte Spiel heißt Alien Invasion.
Installieren Sie Pygame und erstellen Sie ein Raumschiff, das sich nach links und rechts bewegen kann
Mein Computer ist Windows 10, python3.6, Pygame-Download-Adresse: Portal
Bitte laden Sie die entsprechende Python-Version von Pygame selbst herunter
$ pip install wheel $ pip install pygame‑1.9.3‑cp36‑cp36m‑win_amd64.whl
Erstellen Sie ein Pygame-Fenster und reagieren Sie auf Benutzereingaben
Erstellen Sie einen neuen Ordner „alien_invasion“, erstellen Sie eine neue Datei „alien_invasion.py“ im Ordner und geben Sie den folgenden Code ein.
import sys import pygame def run_game(): #initialize game and create a dispaly object pygame.init() screen = pygame.display.set_mode((1200,800)) pygame.display.set_caption("Alien Invasion") # set backgroud color bg_color = (230,230,230) # game loop while True: # supervise keyboard and mouse item for event in pygame.event.get(): if event.type == pygame.QUIT: sys.exit() # fill color screen.fill(bg_color) # visualiaze the window pygame.display.flip() run_game()
Wenn wir den obigen Code ausführen, erhalten wir ein Fenster mit einer grauen Oberfläche:
$ python alien_invasion.py
Um beim Schreiben von Spielen einfach einige neue Funktionen zu erstellen, schreiben wir ein zusätzliches Einstellungsmodul, das eine Einstellungsklasse zum Kombinieren aller Einstellungen enthält Bewahren Sie es an einem Ort auf. Dies macht es später einfacher, das Erscheinungsbild des Spiels zu ändern, wenn das Projekt wächst. Wir ändern zunächst die Anzeigegröße und die Anzeigefarbe in alien_invasion.py. Erstellen Sie zunächst eine neue Python-Datei „settings.py“ im Ordner „alien_invasion“ und fügen Sie den folgenden Code hinzu:
class Settings(object): """docstring for Settings""" def init(self): # initialize setting of game # screen setting self.screen_width = 1200 self.screen_height = 800 self.bg_color = (230,230,230)
Importieren Sie dann die Settings-Klasse in „alien_invasion.py“ und verwenden Sie die entsprechenden Einstellungen. Ändern Sie sie wie folgt:
import sys import pygame from settings import Settings def run_game(): #initialize game and create a dispaly object pygame.init() ai_settings = Settings() screen = pygame.display.set_mode((ai_settings.screen_width,ai_settings.screen_height)) pygame.display.set_caption("Alien Invasion") # set backgroud color bg_color = (230,230,230) # game loop while True: # supervise keyboard and mouse item for event in pygame.event.get(): if event.type == pygame.QUIT: sys.exit() # fill color screen.fill(ai_settings.bg_color) # visualiaze the window pygame.display.flip() run_game()
Als nächstes müssen wir das Raumschiff zum Spiel hinzufügen. Um das Schiff des Spielers auf dem Bildschirm zu zeichnen, laden wir ein Bild und zeichnen es mit der Pygame()-Methode blit(). Fast alle Arten von Bilddateien können in Spielen verwendet werden, aber die Verwendung von Bitmap-Dateien (.bmp) ist am einfachsten, da Pygame standardmäßig Bitmaps lädt. Obwohl andere Arten von Bildern geladen werden können, müssen zusätzliche Bibliotheken installiert werden. Wir empfehlen, auf einer kostenlosen Stockfoto-Website nach Bildern zu suchen: Portal . Wir erstellen einen neuen Ordner namens „images“ im Hauptprojektordner (alien_invasion) und legen die folgenden BMP-Bilder darin ab.
Als nächstes erstellen wir die Schiffsklasse ship.py:
import pygame class Ship(): def init(self,screen): #initialize spaceship and its location self.screen = screen # load bmp image and get rectangle self.image = pygame.image.load('image/ship.bmp') self.rect = self.image.get_rect() self.screen_rect = screen.get_rect() #put spaceship on the bottom of window self.rect.centerx = self.screen_rect.centerx self.rect.bottom = self.screen_rect.bottom def blitme(self): #buld the spaceship at the specific location self.screen.blit(self.image,self.rect)
Zuletzt zeichnen wir das Schiff auf dem Bildschirm, also in der alien_invasion .py-Datei Rufen Sie die Blitme-Methode auf:
import sys import pygame from settings import Settings from ship import Settings def run_game(): #initialize game and create a dispaly object pygame.init() ai_settings = Settings() screen = pygame.display.set_mode((ai_settings.screen_width,ai_settings.screen_height)) ship = Ship(screen) pygame.display.set_caption("Alien Invasion") # set backgroud color bg_color = (230,230,230) # game loop while True: # supervise keyboard and mouse item for event in pygame.event.get(): if event.type == pygame.QUIT: sys.exit() # fill color screen.fill(ai_settings.bg_color) ship.blitme() # visualiaze the window pygame.display.flip() run_game()
Refactoring: Modul game_functions
In großen Projekten ist es oft notwendig, vorhandenen Code umzugestalten, bevor neuer Code hinzugefügt wird. Der Zweck des Refactorings besteht darin, die Struktur des Codes zu vereinfachen und ihn leichter erweiterbar zu machen. Wir werden ein game_functions-Modul implementieren, das eine Reihe von Funktionen speichert, die die Ausführung des Spiels „Alien Invasion“ ermöglichen. Durch die Erstellung des Moduls „game_functions“ kann vermieden werden, dass „alien_invasion.py“ zu lang wird, wodurch die Logik leichter verständlich wird.
Zuerst verschieben wir den Code, der Ereignisse verwaltet, in eine Funktion namens check_events() Funktion, der Zweck besteht darin, die Ereignisschleife zu isolieren
import sys import pygame def check_events(): #respond to keyboard and mouse item for event in pygame.event.get(): if event.type == pygame.QUIT: sys.exit()
Dann ändern wir den Code „alien_invasion.py“, importieren das Modul „game_functions“ und ersetzen die Ereignisschleife durch einen Aufruf der Funktion check_events():
import sys import pygame from settings import Settings from ship import Ship import game_functions as gf def run_game(): #initialize game and create a dispaly object pygame.init() ai_settings = Settings()
Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln zum Thema PHP-Chinesisch Webseite!
Empfohlene Lektüre:
Wie Python TXT-Dateien Zeile für Zeile liest und schreibt
Wie Python MySQL aufruft, um Daten zu aktualisieren
Das obige ist der detaillierte Inhalt vonEntwickeln Sie einfache Spiele mit Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!