動き

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

ratch2025
ラッチ先生
ラッチ先生
スック
スック

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

今回のプロジェクトは、こちら!
ラッチ先生
ラッチ先生

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

pythonしよう!00:boonを表示する
boonを表示する
pythonしよう!動き03:pygame zeroフォルダ
pygame zeroフォルダ
スック
スック

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

参考記事
【Pygame Zero】スクリーンに画像を 表示させる
【Pygame Zero】スクリーンに画像を 表示させる

学習の流れ

コードを 書こう
上キーで boonボーンを 上に動かす
下キーで boonボーンを 下に動かす
プログラムを 実行してみよう

プログラミングの仕方を説明します

ラッチ先生
ラッチ先生

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

def update()関数の解説
Python
def update():
    if keyboard.up:
pythonしよう!動き03:if keyboard.upの解説
ラッチ先生
ラッチ先生

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

7. boonボーン = Actorアクター(“boonボーン“, (400, 300))

変数boonボーンには、Actorアクター()クラス(設計図)が 入っています。

pythonしよう!動き03:boon = Actor("boon", (400, 300))の解説


Actorアクター()クラスに入っている
 ・ angleアングル(キャラクターの向き)
 ・ move_forwardムーヴ・フォワード (キャラクターを 動かす)
 ・ y (キャラクターの y座標)
属性(データ)と メゾットを 「.(ドット)」を付けて 使います

Python
        boon.angle = 90
pythonしよう!動き03:boon.angle = 90 の解説
ラッチ先生
ラッチ先生

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

数学の「=(イコール)」は、
プログラミングの世界では、「==」と書きます
覚えておいてね!

angle
pythonしよう!動き03:Actor()クラスのangle属性の解説
Python
        boon.move_forward(5)
pythonしよう!動き03:boon.move_forward(5)の解説
move_forward()メゾット
pythonしよう!動き03:Actor()クラスのmovr_forwardメゾットの解説
スック
スック

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

スック
スック

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

ラッチ先生
ラッチ先生

boonボーンが、上端より先に 行かないようにプログラムしましょう。
boonボーンが上端に当たる時の y座標を考えます。

boonボーンの画像は、100px × 100px

スクリーンの上端のy座標は、0

boonボーンが、上端に当たる時のy座標は、50

つまり、
boonボーンが y座標:50 の時に 上壁に当たる

pythonしよう!動き03:boon.png
pythonしよう!動き03:boonが上端に触れるy座標
boonが上端に触れたy座標
Python
        if boon.y < 50:
            boon.y = 50
pythonしよう!動き03:if boon.y < 50: boon.y の解説
スック
スック

これで、上端に当たると 進まなくなったね

ラッチ先生
ラッチ先生

次は、boonボーンを 下に動かします
上に動かすプログラムの 下に 書きましょう

Python
    if keyboard.down:
pythonしよう!動き03:if keyboard.downの解説
ラッチ先生
ラッチ先生

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

Python
        boon.angle = -90
pythonしよう!動き03:boon.angle = -90の解説
Python
        boon.move_forward(5)
pythonしよう!動き03:boon.move_forward(5)の解説
ラッチ先生
ラッチ先生

そして、
boonボーンが、下端より先に 行かないようにプログラムしましょう。
boonボーンが下端に触れる時の y座標を考えます。

スクリーンの下端のy座標は、590(HEIGHTハイト

boonボーンが、下端に触れた時のy座標は、590(HEIGHTハイト) – 50

つまり
boonボーンが y座標:540 の時に 下端に 触れる

pythonしよう!動き03:boonが下端に触れた時のy座標
boonが下端に触れたy座標
Python
        if boon.y > HEIGHT - 50:
            boon.y = HEIGHT -50
pythonしよう!動き03:if boon.y > HEIGHT -50: boon.y = HEIGHT -50 の解説
スック
スック

これで、今回の学習は終了! おつかれさま

今回は、
上下キーを 押して boonボーンを 動かすプログラムを 作りました

ラッチ先生
ラッチ先生
上下キーで ボーンを 動かす
Python
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°
覚えておこうね!

pythonしよう!動き03:Actor()クラスのangle属性の解説
スック
スック

はぁ~い!

ABOUT ME
ラッチ先生
ラッチ先生
こんにちは!「Pythonしよう!楽しく学べるプログラミング教室」の学長、ラッチです。 scratchのように楽しく学べるPython講座です。 ・図やアニメーションを使って、わかりやすく楽しく学べる! ・毎回の授業が新しい発見の連続! ・プログラミングの考え方が身につき、自分のやりたいことが形にできるように。 この3点をモットーにサイトを立ち上げました。 よろしくお願いします
記事URLをコピーしました