スプライトの現在位置取得
やること
この教材 では、Jasmine Tea のプログラムでスプライトの現在の座標を取得して表示する方法を学びます。これにより、スプライトの位置を確認しながらプログラムを制御することができます。
ステップ1
エディターに以下のプログラムを入力してみましょう。
show 0,(160,120)
direction 0,3
speed 0,5
distance 0,100
move 0
do
locate 0, 0
print "X座標:";xpos(0)
print "Y座標:";ypos(0)
if not moving(0) then
exit do
end if
loop
print "移動が完了しました!"
ステップ2
エディターの右下にある「▶実行」ボタンを押すと、入力したプログラムが実行されます。このプログラムは無限ループになるため、一定時間後に「止める」ボタンを押してプログラムを停止してください。その後、画面の右上にある「ドキュメント」タブを押して、ここに戻ってきてください。
では、「▶実行」ボタンを押してください。
ステップ3
実行画面に以下のように表示されたら成功です。
スプライト0が移動中、現在の座標(X座標とY座標)が順次表示されます。スプライトが停止すると「移動が完了しました!」と表示されます。
ステップ4
実行したプログラムを解説します。
使っている命令の簡単な紹介
-
show
はスプライトを画面に表示する命令です。 -
direction
は スプライトの動く方向を設定する命令です。 -
speed
は スプライトの速さを設定する命令です。 -
distance
は スプライトが動く距離を設定する命令です。 -
move
は 指定したスプライトを動かす命令です。 -
locate
は スプライトの現在位置を取得するための準備をする命令です。 -
xpos
は スプライトの現在のX座標を取得する関数です。 -
ypos
は スプライトの現在のY座標を取得する関数です。 -
moving
は スプライトが移動中かどうかを判定する命令です。 -
exit do
はdo-loop
のループを終了する命令です。
プログラムで行われていること
-
show 0,(160,120)
でスプライト0を画面の座標(160,120)に表示します。 -
direction 0,3
でスプライト0の動く方向を右(3)に設定します。 -
speed 0,5
でスプライト0の速さを5に設定します。 -
distance 0,100
でスプライト0の移動距離を100に設定します。 -
move 0
でスプライト0を動かします。 -
do-loop
の中で、locate 0, 0
を使いスプライト0の現在位置を取得します。 -
xpos(0)
とypos(0)
でスプライト0の現在のX座標とY座標を表示します。 - スプライトが停止するとループを終了し、「移動が完了しました!」と表示します。
学ぶべきこと
- スプライトの現在位置を取得する方法。
- 現在位置を利用してプログラムの動作を確認する方法。
- 移動中のスプライトの状態を把握する方法。
チャレンジ
-
distance
の値を変更して、スプライトの移動範囲を調整してみましょう。 -
speed
の値を変更して、スプライトの移動速度を変えて現在位置の表示間隔を確認してみましょう。 - 複数のスプライトを動かして、それぞれの現在位置を取得し表示するプログラムを作成してみましょう。