Pythonでゲームプログラミングwith Pygame Zero 3.座標とキー入力
Windows10のMuエディタを使用して説明しています。
Muエディタのインストール、フォルダ構成などに関しては下のマガジンを参照して下さい。
画面の座標
画面上の位置は(x座標, y座標)で表されます。
Scratch とは異なり画面右上が(0, 0)になります。
Actor の位置指定
x座標、y座標のセットで指定できるのは
pos, topleft, topright, bottomleft, bottomright, midtop, midleft, midright, midbottom, center
x座標のみ指定
x、left、right
y座標のみ指定
y、top、bottom
WIDTH = 400
HEIGHT = 500
キー入力
キー入力のチェックは
update 関数の中で keyboard. の後ろにキーの名前を付けて
if keybord.up:
のように記述するか(上矢印キーが押されていたら True )
イベント処理として
def on_key_down(key):
if key == keys.UP:
のように記述します。
keyboard オブジェクトではキーの名前は小文字で記述、キーの押しっぱなしや複数キーの同時入力も検出できます。
on_key_down 関数ではキーの名前は大文字で記述します。
キーの名前
マウスのボタンとキーの名前は公式ドキュメントを参照して下さい。
サンプルプログラム
WIDTH = 400
HEIGHT = 500
PLAYER_SPEED = 2
player = Actor("p3_stand",(WIDTH/2, HEIGHT/2))
def draw():
screen.clear()
player.draw()
def update():
if keyboard.right and player.right < WIDTH:
player.x += PLAYER_SPEED
if keyboard.left and player.left > 0:
player.x -= PLAYER_SPEED
if keyboard.up and player.top > 0:
player.y -= PLAYER_SPEED
if keyboard.down and player.bottom < HEIGHT:
player.y += PLAYER_SPEED
if keyboard.space:
player.angle -= 10
def on_key_down(key):
if key == keys.RETURN:
player.angle += 10
矢印キーで上下左右に移動。上矢印と右矢印を同時に押せば右上に移動。
if 文で入力キーと画面からはみ出さないかをチェック。
SPACE キーで右回りに回転。押し続けると連続して回転。
RETURN キーで左回りに回転。押したときだけ回転。
Pyhon のきまり
〇定数(プログラムの中で値を変えない)は大文字で記述する。
PLAYER_SPEED はプログラムの中では値を変えませんが実行する時は色々な値にして試してみて下さい。
〇代入式
a を 1 増やすとき a = a + 1 と書いてもよいが a += 1 のように記述する。
Scratch の変数を〇ずつ変えるのブロックに似ている。
〇条件式
keybord.up は上矢印キーが押されていたら True。この場合
if keybord.up == True と書かなくても if keybord.up でよい。
この記事が気に入ったらサポートをしてみませんか?