Pythonでゲームプログラミングwith Pygame Zero その2 画像を動かす
Windows10のMuエディタを使用して説明しています。
Muエディタのインストールに関しては下の記事を参照して下さい。
プロジェクトフォルダの作成
ゲームのプログラムはコード(文字で打ってあるプログラムの部分)だけでは動かない。登場するキャラクタの画像や効果音が必要、ゲームっぽいフォント(デザインされた文字のセット)も欲しい。
まず、プロジェクト用のフォルダ「space_world」を作成。その中に「fonts」「images」「sounds」フォルダを作成。
ゲーム素材を集める
ケニーというサイトから無料で使える画像などがダウンロードできます。
他でもゲーム等で利用可のデータが公開されていますが著作権に注意して使用しましょう。
Assets のページにさまざまな素材があります。
エイリアンの画像は
https://kenney.nl/assets/platformer-art-deluxe からダウンロード
展開した 「platformer-art-complete-pack-0\Base pack\Player」フォルダから
p3_stand を「images」フォルダにコピー
Pygame Zero の基本
いよいよ画像を動かすプログラムの入力です。
Python の基礎知識については省略します。コード入力時に気をつけるのは
関数 def kannsumei():
条件式 if a==b:
で文末のコロン:を忘れないこと、ブロックの区切りの字下げをそろえること、変数名のタイプミスです。変数名については入力時に候補が表示されるのでダブルクリックで選択すればタイプミスがふせげます。
WIDTH = 400
HEIGHT = 500
player = Actor("p3_stand", (200, 250))
def draw():
player.draw()
WIDTH、HEIGHT、Actor、draw() は Pygame Zero で決まっているコードで大文字、小文字の区別も含めてこのように入力します。
WIDTH、HEIGHT でゲーム画面の縦横のサイズを決めます。
座標は、画面右上が(0,0) 左下が (400,500)となります。
Actor は Scratch のスプライトに似ていて、ゲームに登場するキャラクタの情報をしまっておく枠組みです。(よくわからないがクラスというもの)
登場するキャラクタにplayerという名前をつけて、画像は「p3_stand」にして画面の中央に表示するには下記のように記述。
player = Actor("p3_stand", (200, 250))
player を画面に表示するには draw 関数を使う。
def draw():
player.draw()
ピリオド .は player を描画する(player.draw)とか、X座標を示す(player.x)のように使う。
画像を動かす
アニメが動いて見えるのは、少しずつ変化している静止画を連続して見ているから。Pygame Zero では update 関数を使って画像を変化させます。
def update():
player.x += 1
ただx座標を変えただけでは前の画像が残ってしまいます。画面のクリア処理を追加。
def draw():
screen.clear()
player.draw()
def update():
player.x += 1
テレビアニメでは1秒間に30枚ぐらいの静止画が表示されているそうです。Pygame Zero の update 関数は繰り返し処理を記述しなくても1秒間に60回実行されます。
最小限のプログラム構成は
1.画面のサイズ(WIDTH,HEIGHT)を決める
2.登場するキャラクタの画像をセット(Actor)
3.draw 関数、update 関数を記述する
詳しくは公式ドキュメントを参照して下さい。
他のエディタで実行するには
すでに Python の環境があって、VS Code などで Pygame Zero のプログラムを実行するには、コマンドプロンプト で次のように入力
pip install pgzero
プログラムの冒頭に次の行を追加
import pgzrun
そして次の行をプログラムの最後に追加
pgzrun.go()
次の記事
この記事が気に入ったらサポートをしてみませんか?