円を描きながら動くスプライト

説明

スプライトが円を描くように移動します。円運動させる方法はいくつかありますが、ここでは三角関数のsin、cosを使用しています。

Studioで試す

以下のリンクから Jasmine Tea でこのサンプルプログラムを Studio 画面で開いて実際に試すことができます。プログラムを実行したいときは、エディターの右下にある青色の「実行」ボタンを押してください。

Studio で開く

プログラム

// 円を描きながら動くスプライト
cls
sprite 0,28
cx=300
cy=180
deg=0
r=140
do
  x=cx+cos(deg)*r
  y=cy+sin(deg)*r
  show 0,(x,y)
  deg=deg+0.5
loop

解説

3行目で0番目のスプライトに表示するスプライト番号を割り当てます。

4、5行目で円の中心座標を変数cx,cyに入れます。スプライトはこの座標を中心に円運動します。

6行目の変数degは角度を示しています。角度は0〜360度までですが、この範囲の値の場合は360で割り算した余りがsin,cosに渡されます。

7行目は円運動する際の円の半径になります。値が大きいほど大きな円運動になります。

無限に繰り返すため8行目でdoを指定します。これによりloopまでの9〜12行目までを繰り返し実行します。

9、10行目でスプライトの位置を計算します。これは以下の計算式になります。

X座標=中心座標+cos(角度)×半径

Y座標=中心座標+sin(角度)×半径

11行目でスプライトを指定した座標に表示しています。

12行目で円運動する際の角度の移動量を加算しています。値を大きくすると高速に円回転し、小さくするとゆっくりと円回転します。値を足した場合は時計回りに動きますが、値を引き算した場合は反時計回りにスプライトが動きます。