見出し画像

Pythonでゲームプログラミングwith Pygame Zero 3.座標とキー入力

Windows10のMuエディタを使用して説明しています。
Muエディタのインストール、フォルダ構成などに関しては下のマガジンを参照して下さい。

画面の座標

画面上の位置は(x座標, y座標)で表されます。
Scratch とは異なり画面右上が(0, 0)になります。

Actor の位置指定

画像1

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 でよい。


この記事が気に入ったらサポートをしてみませんか?