動き

【Pygame Zero】キャラクターが 上下に動き続ける

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

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

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

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

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

学習の流れ

コードを 書こう
boonボーンを 上に向けて 動かす
上下の端に 触れたら、跳ね返る
プログラムを 実行してみよう
ラッチ先生
ラッチ先生

まずは、
Actorアクター()クラスの属性angleアングルboonボーンを 上に向けます

Actor()クラスとは?

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

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

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

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

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

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

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

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

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

pythonしよう!動き04:def update()関数の解説
Python
def update():
    boon.move_forward(5)
pythonしよう!動き04:boon.forward(5)の解説
move_forwardメゾット
pythonしよう!動き04:move_forward()メゾットの解説
スック
スック

あららっ! 消えていったよ

ラッチ先生
ラッチ先生

つぎに、
上下の端に 触れたら 跳ね返るようにします。
boonが 上下の端に触れた時の y座標を確認しましょう

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

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

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

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

pythonしよう!動き04:boon.png
pythonしよう!動き04:boonが上橋に触れた時のy座標
boonが上端に触れたy座標
Python
    if boon.y < 50
pythonしよう!動き04:if boon.y < 50の解説

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

boonボーンが、下端に触れる時の y座標は

590(HEIGHTハイト)ー 50 = 540

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

pythonしよう!動き04:boonが下端に触れた時のy座標
Python
    if boon.y < 50 or boon.y > HEIGHT - 50:
        boon.angle = -boon.angle
pythonしよう!動き04:or boon.y > HEIGHT -50:の解説
pythonしよう!動き04:boon .angle = -boon.angleの解説
ラッチ先生
ラッチ先生

跳ね返った角度の求め方 『- boonボーン.angleアングル 』について
解説します

上端に 触れて(boonボーン.y < 50)

pythonしよう!動き04:上に動くboon.angle=90の解説

跳ね返ると boonボーン.angleアングル

boonボーン.angleアングル は、-90° になります
そして、boonボーン.angleアングルに 代入するよ

pythonしよう!動き04:boonが上端に触れて-boon.angleの解説

これで、boonボーンは 上端に触れると 角度が-90°に なって進みます

pythonしよう!動き04:boonが下に動く角度

下端に 触れて(boonボーン.y > HEIGHTハイト – 50)

pythonしよう!動き04:boonが下端に触れて-boon.angleの解説

跳ね返ると boonボーン.angleアングル

boonボーン.angleアングルは、90°になります。
そして、boonボーン.angleアングルに 90°を 代入するよ

これで、boonボーンが下端に触れると 角度が 90°になって 進みます

スック
スック

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

今回は、
boonボーンが 上下に動き続けるプログラムを 作りました

ラッチ先生
ラッチ先生
boonが 上下に動き続ける
Python
import pgzrun
from pgzhelper import *

WIDTH = 800
HEIGHT = 590

boon = Actor("boon", (400, 300))
boon.angle = 90

def draw():
    screen.fill("white")
    boon.draw()

def update():
    boon.move_forward(5)
    if boon.y < 50 or boon.y > HEIGHT - 50:
        boon.angle = -boon.angle

pgzrun.go()
ラッチ先生
ラッチ先生

上下の端の跳ね返り
 ・跳ね返る角度:- boonボーン.angleアングル

これを 覚えておこうね!

スック
スック

はぁ~い!

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