複数のスプライトを動かし続ける
やること
この教材では、複数のスプライトを指定した方向に動かし続ける方法を学びます。この例では、2つのスプライトが指定された方向に動き続けるプログラムを作成します。
ステップ1
エディターに以下のプログラムを入力してみましょう。
show 0,(100,100)
direction 0,3
speed 0,15
distance 0,200
show 1,(200,200)
direction 1,5
speed 1,10
distance 1,150
do
for i=0 to 1
if not moving(i) then
print "スプライト";i;"が移動開始!"
move i
end if
next
loop
ステップ2
エディターの右下にある「▶実行」ボタンを押すと、入力したプログラムが実行されます。このプログラムは無限ループになるため、一定時間後に止めるボタンを押してプログラムを停止してください。その後、画面の右上にある「ドキュメント」タブを押して、ここに戻ってきてください。
では、「▶実行」ボタンを押してください。
ステップ3
実行画面に以下のように表示されたら成功です。
- スプライト0とスプライト1が画面上で指定された方向に動きます。
- スプライトが動き始めるたびに、そのスプライト番号と「移動開始!」というメッセージが表示されます。
ステップ4
実行したプログラムを解説します。
使っている命令の簡単な紹介
-
show
はスプライトを指定した位置に表示する命令です。 -
direction
はスプライトの移動方向を指定する命令です。値は0〜7で方向を示します(例: 3は右下方向、5は下方向)。 -
speed
はスプライトの移動速度を指定する命令です(単位はピクセル/フレーム)。 -
distance
はスプライトが移動する距離を指定する命令です。 -
move
はスプライトを動かす命令です。 -
moving
はスプライトが現在動いているかどうかを判定する関数です。
プログラムで行われていること
-
show
命令でスプライト0とスプライト1をそれぞれ初期位置に表示します。 -
direction
,speed
,distance
命令でそれぞれのスプライトの移動条件を設定します -
do-loop
内でスプライトの移動をチェックし、停止している場合は再度move
命令で動かします。
学ぶべきこと
- 複数のスプライトを初期化して動かす方法。
- 各スプライトの状態をチェックして個別に制御する方法。
- 簡潔に複数のスプライトを制御するためのループの活用方法。
チャレンジ
- 複数のスプライトの方向と速度を変更してみましょう。
- どちらかのスプライトが停止した時、その動きを再開する際のメッセージを変更してみましょう。
-
さらにスプライトを追加してみましょう。その際に
for
文を使って記述してください。