今回はPythonを使って簡単なゲームを開発する方法を紹介します。Pythonを使って小さなゲームを開発する場合の注意点は何ですか?実際の事例を見てみましょう。
はじめに
Python 言語は、科学技術コンピューティングの分野での有用性に加えて、ゲームやバックエンドなどでも最近人気が高まっています。このブログ投稿は、正式なプロジェクト開発プロセスに従います。その楽しさを体験するために、小さな Python ゲームを作成する方法をステップバイステップで教えましょう。今回開発したゲームは「エイリアン・インベージョン」です。
pygameをインストールして、左右に移動できる宇宙船を作成してください
私のコンピューターはWindows 10、python3.6、pygameのダウンロードアドレス: Portal
対応するPythonバージョンのpygameを自分でダウンロードしてくださいそして、次のコマンドを実行します
$ pip install wheel $ pip install pygame‑1.9.3‑cp36‑cp36m‑win_amd64.whl
Pygameウィンドウを作成し、ユーザー入力に応答します
新しいフォルダーalien_invasionを作成し、フォルダー内に新しいalien_invasion.pyファイルを作成し、次のコードを入力します。
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()
上記のコードを実行すると、灰色のインターフェイスを持つウィンドウが表示されます:
$ python alien_invasion.py
ゲームの作成プロセス中にいくつかの新しい関数を簡単に作成するために、次の追加の設定クラスを含む設定モジュールを作成して、すべての設定を 1 か所に保存します。これにより、プロジェクトが成長するにつれて、後でゲームの外観を変更することが容易になります。 まず、alien_invasion.py で表示サイズと表示色を変更します。 まず、alien_invasion フォルダーに新しい Python ファイル settings.py を作成し、次のコードを追加します。
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)
次に、Alien_invasion.py に設定クラスをインポートし、関連する設定を次のように変更します。
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()
次に、宇宙船をゲームに追加する必要があります。プレイヤーの船を画面上に描画するには、画像をロードし、Pygame() メソッド blit() を使用して描画します。 ゲームではほぼすべての種類の画像ファイルを使用できますが、Pygame はデフォルトでビットマップをロードするため、ビットマップ (.bmp) ファイルを使用するのが最も簡単です。他のタイプのイメージをロードすることもできますが、追加のライブラリをインストールする必要があります。無料のストック フォト サイトで画像を探すことをお勧めします: Portal 。メインプロジェクトフォルダー(alien_invasion)にimagesという新しいフォルダーを作成し、その中に次のbmp画像を入れます。
次に、船クラス 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)
最後に、画面上に船を描画します。つまり、alien_invasion.py ファイルの blitme メソッドを呼び出します:
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()
リファクタリング: module game_functions
大規模なプロジェクトでは、新しいコードを追加する前に既存のコードをリファクタリングする必要があることがよくあります。リファクタリングの目的は、コードの構造を簡素化し、拡張を容易にすることです。ゲーム「エイリアン インベージョン」の実行を可能にする多くの関数を保存する game_functions モジュールを実装します。 game_functions モジュールを作成することで、alien_invasion.py が長くなるのを避け、ロジックが理解しやすくなります。
まず、イベント ループを分離するために、events を管理するコードを check_events() という関数に移動します
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()
次に、alien_invasion.py コードを変更し、 game_functions モジュールを作成し、イベント ループを関数 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()
この記事のケースを読んだ後は、このメソッドを習得したと思います。さらに興味深い情報については、他の関連情報に注目してください。 PHP 中国語 Web サイトの記事をご覧ください。
推奨書籍:
Python が txt ファイルを 1 行ずつ読み書きする方法
Python がデータを更新するために mysql を呼び出す方法
以上がPythonを使って簡単なゲームを開発するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。