【Pygame Zero】キャラクターを上下キーで動かす

こんにちは!
「Pythonしよう!楽しく学べるプログラミング教室」の
ラッチ先生です


スックです。よろしくね!

今回のプロジェクトは、
基礎プログラムに 追加していきます。
下の「pygame zero」zipファイルを
ダウンロードしてください



この基礎プログラムは、こちらの記事で解説しています

学習の流れ
プログラミングの仕方を説明します
コードを 書こう
上キーで 動かそう

まずは、boonを 上に動かします
boonを動かすプログラムは、「def update():」関数で 作ろう

def update():
if keyboard.up:

オブジェクトとは
設計図(クラス)で 作り出されたもの
・ キャラクター
・ キーボード
・ 背景 など
keyboardオブジェクト

設計図(クラス)は、
変数に 名前を付けて 保存する
*Pygama zeroでは
はじめから変数keyboardに 設計図が入ってる

変数に「.(ドット)」を付ければ
keyboard.up
設計図のプログラムが 使える


上キーが 押されたら
・方向は 上
・5ピクセル 動かす
・上端より 上に行かない
この3つのプログラムを 書いていきましょう
7. boon = Actor(“boon“, (400, 300))
変数boonには、Actor()クラス(設計図)が 入っています。

Actor()クラスに入っている
・ angle(キャラクターの向き)
・ move_forward (キャラクターを 動かす)
・ y (キャラクターの y座標)
属性(データ)と メゾットを 「.(ドット)」を付けて 使います
boon.angle = 90


プログラミングの世界では、
「=」は、代入する。
つまり、
boon.angleに、「90(データ)」を 代入する と言うこと
数学の「=(イコール)」と 違うからね
数学の「=(イコール)」は、
プログラミングの世界では、「==」と書きます
覚えておいてね!

boon.move_forward(5)



これで、上キーを押して、動かしてみよう

あらら! 上端へ 消えていったよ…

boonが、上端より先に 行かないようにプログラムしましょう。
boonが上端に当たる時の y座標を考えます。
boonの画像は、100px × 100px
スクリーンの上端のy座標は、0
boonが、上端に当たる時のy座標は、50
つまり、
boonが y座標:50 の時に 上壁に当たる


if boon.y < 50:
boon.y = 50


これで、上端に当たると 進まなくなったね
下キーで 動かそう

次は、boonを 下に動かします
上に動かすプログラムの 下に 書きましょう
if keyboard.down:


下キーが 押されたら
・方向は 下(-90度)
・5ピクセル 動かす
・下端より 下に行かない
この3つのプログラムを 書いていきましょう
boon.angle = -90

boon.move_forward(5)


そして、
boonが、下端より先に 行かないようにプログラムしましょう。
boonが下端に触れる時の y座標を考えます。
スクリーンの下端のy座標は、590(HEIGHT)
boonが、下端に触れた時のy座標は、590(HEIGHT) – 50
つまり
boonが y座標:540 の時に 下端に 触れる

if boon.y > HEIGHT - 50:
boon.y = HEIGHT -50


これで、今回の学習は終了! おつかれさま
まとめ
今回は、
上下キーを 押して boonを 動かすプログラムを 作りました

import pgzrun
from pgzhelper import *
WIDTH = 800
HEIGHT = 590
boon = Actor("boon", (400, 300))
def draw():
screen.fill("white")
boon.draw()
def update():
if keyboard.up:
boon.angle = 0
boon.move_forward(5)
if boon.y < 50:
boon.y = 50
if keyboard.down:
boon.angle = -90
boon.move_forward(5)
if boon.y > HEIGHT - 50:
boon.y = HEIGHT -50
pgzrun.go()

キャラクター「boon」のangleは、
右が 0°、上が 90°、下が-90° 左が 180°
覚えておこうね!


はぁ~い!