動き

【Pygame Zero】キャラクターが いろんな所に現れる

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

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

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

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

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

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

参考記事
【Pygame Zero】スクリーンに画像を 表示させる
【Pygame Zero】スクリーンに画像を 表示させる
コードを 書こう
タイマーを 作る
1秒経ったら、boonの座標を ランダムに 決める
プログラムを 実行してみよう
ラッチ先生
ラッチ先生

boonボーンの座標を ランダムに決めるので、
まず、
ランダムモジュールを用意しよう

Python
import pgzrun
import random #この部分を 追加する
import pgzhelper #削除する
pythonしよう!07:import randomを解説する
pythonしよう!07:pgzhelperモジュールを解説する
ラッチ先生
ラッチ先生

つぎは、
時間の経過がわかる変数:timeタイマーrを 作ろう

pythonしよう!07:変数timerを解説する
Python
timer = 0
pythonしよう!07:変数timer 解説する
スック
スック

「=(代入)」は、数学の「=(イコール)」と 違うよ
変数:timerに 『0』を 入れることだよ

ラッチ先生
ラッチ先生

そして、
defデフ updateアップデート(dtデルタタイム)関数の 引数:dtデルタタイム(deltaデルタ timeタイムの略語)を 使います

def update(dt)関数
スック
スック

うわぁ~! 0.016~0.017秒で 更新しているんだぁ

Python
def update(dt):
    global timer
    
    timer += dt
pythonしよう!07:global timerを解説する
スック
スック

変数タイマーが、0.017秒ずつ増えていくんだね

ラッチ先生
ラッチ先生

それでは、
タイマーが 1秒経ったら、 boonボーンを 動かしましょう

Python
    if timer > 1.0:
        boon.x = random.randoint(50, 750)
        boon.y = random.randoint(50, 540)
        
        timer = 0
pythonしよう!07:if timer > 1.0を解説する

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

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

pythonしよう!07:boon = Actor()の解説


Actorアクター()クラスに入っている
  ・ x (キャラクターの x座標)
  ・ y (キャラクターの y座標)


属性(データ)と メゾットを 「.(ドット)」を付けて 使います

randint(a,b)関数
pythonしよう!07:randint関数を解説する
pythonしよう!07:boonのx座標の範囲を解説する
スック
スック

boonボーン のy座標は、50から540 に なるね!

ラッチ先生
ラッチ先生

boonボーン が 動いたら、
タイマーを 「0」に するんだ

そうすると、1秒経ったら boonボーンが 動くように なるよ

スック
スック

スローモーションに してみました。
タイマーが 「0」に なったね

スック
スック

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

今回は、
boonボーンが 1秒ごとに ランダムな場所へ行くプログラムを 作りました

ラッチ先生
ラッチ先生
boonが いろんな所に 現れる
Python
import pgzrun
import random

WIDTH = 800
HEIGHT = 590

boon = Actor("boon", (400, 300))
timer = 0

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

def update(dt):
    global timer
    
    timer += dt
    
    if timer > 1.0:
        boon.x = random.randint(50, 750)
        boon.y = random.randint(50, 540)
        
        timer = 0

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

randomランダムモジュールの randintランドイント()関数は、
ゲーム作りに とても役に立ちます

覚えておこうね!

スック
スック

はぁ~い!

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

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

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