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

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


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

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



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

学習の流れ
プログラミングの仕方を説明します
ランダムモジュールを 用意する

boonの座標を ランダムに決めるので、
まず、
ランダムモジュールを用意しよう
import pgzrun
import random #この部分を 追加する
import pgzhelper #削除する

今回のプロジェクトには、
Actor()クラスの move_forward()メゾットでboonを 動かしません
ですので、
move_forward()メゾットが 含まれている pgzhelperモジュールを
削除します。

タイマーを 作る

つぎは、
時間の経過がわかる変数:timerを 作ろう

変数宣言をして、最初の値は 「0」にする
timer = 0


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

そして、
def update(dt)関数の 引数:dt(delta timeの略語)を 使います

うわぁ~! 0.016~0.017秒で 更新しているんだぁ
def update(dt):
global timer
timer += dt


変数タイマーが、0.017秒ずつ増えていくんだね
1秒後に boonの座標を ランダムに 決める

それでは、
タイマーが 1秒経ったら、 boonを 動かしましょう
if timer > 1.0:
boon.x = random.randoint(50, 750)
boon.y = random.randoint(50, 540)
timer = 0

7. boon = Actor(“boon“, (400, 300))
変数boonには、Actor()クラス(設計図)が 入っています。

Actor()クラスに入っている
・ x (キャラクターの x座標)
・ y (キャラクターの y座標)
属性(データ)と メゾットを 「.(ドット)」を付けて 使います

なぜ、boonのx座標を 50~750 にしたのか?
それは、
boon の 画像が、100 × 100 px だからです

スクリーンに boonが 入る範囲が x座標は50から750 に なります

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

boon が 動いたら、
タイマーを 「0」に するんだ
そうすると、1秒経ったら boonが 動くように なるよ

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

これで、今回の学習は終了! おつかれさま
まとめ
今回は、
boonが 1秒ごとに ランダムな場所へ行くプログラムを 作りました

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()関数は、
ゲーム作りに とても役に立ちます
覚えておこうね!

はぁ~い!