Pythonを使って簡単なゲームを開発する

php中世界最好的语言
リリース: 2018-04-09 11:33:58
オリジナル
7801 人が閲覧しました

今回はPythonを使って簡単なゲームを開発する方法を紹介します。Pythonを使って小さなゲームを開発する場合の注意点は何ですか?実際の事例を見てみましょう。

はじめに

Python 言語は、科学技術コンピューティングの分野での有用性に加えて、ゲームやバックエンドなどでも最近人気が高まっています。このブログ投稿は、正式なプロジェクト開発プロセスに従います。その楽しさを体験するために、小さな Python ゲームを作成する方法をステップバイステップで教えましょう。今回開発したゲームは「エイリアン・インベージョン」です。

pygameをインストールして、左右に移動できる宇宙船を作成してください

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()
ログイン後にコピー

Add宇宙船の画像

次に、宇宙船をゲームに追加する必要があります。プレイヤーの船を画面上に描画するには、画像をロードし、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 が長くなるのを避け、ロジックが理解しやすくなります。

関数 check_events()

まず、イベント ループを分離するために、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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!