Entwickeln Sie einfache Spiele mit Python

php中世界最好的语言
Freigeben: 2018-04-09 11:33:58
Original
7838 Leute haben es durchsucht

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

Installieren Sie Pygame

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
Nach dem Login kopieren

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()
Nach dem Login kopieren

Wenn wir den obigen Code ausführen, erhalten wir ein Fenster mit einer grauen Oberfläche:

$ python alien_invasion.py

Einstellungsklasse erstellen

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)
Nach dem Login kopieren

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()
Nach dem Login kopieren

Raumschiffbild hinzufügen

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)
Nach dem Login kopieren

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()
Nach dem Login kopieren

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.

Funktion check_events()

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()
Nach dem Login kopieren

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()
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage