クリックによるスプライトの移動制御
やること
この教材 では、クリック操作によってスプライトの移動を制御する方法を学びます。この例では、スプライトがクリックされた位置を基準に移動するプログラムを作成します。
ステップ1
エディターに以下のプログラムを入力してみましょう。
show 0,(320,200)
direction 0,3
speed 0,5
distance 0,200
move 0
do
tap x, y
if x<>-1 then
sprite_x=xpos(0)
sprite_y=ypos(0)
if x>sprite_x then
if y>sprite_y then
direction 0,5
else
direction 0,3
end if
else
if y>sprite_y then
direction 0,7
else
direction 0,1
end if
end if
move 0
end if
loop
ステップ2
エディターの右下にある「▶実行」ボタンを押すと、入力したプログラムが実行されます。このプログラムは無限ループになるため、一定時間後に止めるボタンを押してプログラムを停止してください。その後、画面の右上にある「ドキュメント」タブを押して、ここに戻ってきてください。
では、「▶実行」ボタンを押してください。
ステップ3
実行画面に以下のように表示されたら成功です。
- スプライトが画面上で移動を開始します。
- クリックした位置に応じてスプライトの移動方向が変わります。
ステップ4
実行したプログラムを解説します 。
使っている命令の簡単な紹介
-
show
はスプライトを指定した位置に表示する命令です。 -
direction
はスプライトの移動方向を指定する命令。値は0〜7で方向を示します(例: 3は右下方向)。 -
speed
は スプライトの移動速度を指定する命令です(単位はピクセル/フレーム)。 -
distance
は スプライトが移動する距離を指定する命令です。 -
move
は スプライトを動かす命令です。 -
tap
は クリックやタップの座標を取得する命令です。 -
xpos
/ypos
は スプライトの現在位置を取得する関数です。
プログラムで行われていること
-
show
命令でスプライトを初期位置(320,200)に表示します。 -
direction
,speed
,distance
命令でスプライトの初期移動条件を設定します。 -
do-loop
内でクリックされた座標を取得し、スプライトの現在位置との相対位置に基づいて移動方向を変更します。 - 変更した方向にスプライトを移動させます。
学ぶべきこと
- クリック操作でスプライトの動きを制御する方法。
- スプライトの現在位置を取得して動作に反映する方法。
チャレンジ
- クリックした位置に応じてスプライトの速度を変更する機能を追加してみましょう。
- 複数のスプライトを表示し、それぞれクリックされた位置を基準に移動させてみましょう。
- 複数のスプライトを表示し、クリックした位置に最も近いスプライトだけが動くようにプログラムを変更してみましょう。