動き

【Pygame Zero】キャラクターを左右キーで動かす

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

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

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

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

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

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

参考記事
【Pygame Zero】スクリーンに画像を 表示させる
【Pygame Zero】スクリーンに画像を 表示させる
スポンサーリンク
右キーで boonボーンを 右に動かす
左キーで boonボーンを 左に動かす
プログラムを 実行してみよう
ラッチ先生
ラッチ先生

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

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

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

pythonしよう!動き01:変数boonの解説
Python
        boon.angle = 0         
ラッチ先生
ラッチ先生

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

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

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

スック
スック

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

ラッチ先生
ラッチ先生

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

pythonしよう!動き01:boon画像
pythonしよう!動き01:boonが右端に当たる
boonが右端に触れたx座標
Python
        if boon.x > WIDTH - 50:
            boon.x = WIDTH - 50
pythonしよう!動き01:boonが右端に当たったら止まるプログラム
スック
スック

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

ラッチ先生
ラッチ先生

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

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

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

Python
        boon.angle = 180         
スック
スック

あらら! boonボーンが 逆さまに なっちゃっよ

Python
        boon.flip_y = True
pythonしよう!動き01:boonを上下に反転するプログラム
flip_y
pythonしよう!動き01:flip_y属性
スック
スック

おっ!なおった

Python
        boon.move_forward(5)
pythonしよう!動き01:boon.move_forward()メゾットの解説
ラッチ先生
ラッチ先生

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

pythonしよう!動き01:boonが左端に当たる
boonが左端に触れたx座標
Python
        if boon.x < 50:
            boon.x = 50
pythonしよう!動き01:boonが左端に当たったら止まるプログラム
スック
スック

あれっ? 右に動く時 逆さまになったよ

ラッチ
ラッチ

おぉぉっ…と!
一度 flipフリップ_y=Trueトゥルーboonボーンを上下反転したら、
ずぅ……と そのままなんだ!
だから、
boonボーンが右向きの時は、flipフリップ_yに Flaseフォルスを 代入して
boonボーンの上下反転を 元に 戻しましょう

pythonしよう!動き01:右キーが押されたら、flip_yでboonの反転を元に戻す
スック
スック

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

今回は、
左右キーを 押して 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.right:
        boon.angle = 0
        boon.flip_y = False
        boon.forward(5)
        if boon.x > WIDTH - 50:
            boon.x = WIDTH - 50
    
    if keyboard.left:
        boon.angle = 180
        boon.flip_y = True
        boon.forward(5)
        if boon.x < 50:
            boon.x = 50

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

キャラクター「boonボーン」を 動かすプログラムは、
defデフ updateアップデート( )関数に 書く
これを 覚えてね

pythonしよう!動き01:def update()関数の解説
スック
スック

はぁ~い!

スポンサーリンク
ABOUT ME
ラッチ先生
ラッチ先生
こんにちは!
「Pythonしよう!楽しく学べるプログラミング教室」の学長、ラッチです。

scratchのように楽しく学べるPython講座です。
・図やアニメーションを使って、わかりやすく楽しく学べる!
・毎回の授業が新しい発見の連続!
・プログラミングの考え方が身につき、自分のやりたいことが形にできるように。

この3点をモットーにサイトを立ち上げました。 よろしくお願いします
記事URLをコピーしました