複数のスプライトを左右に反射移動させる

説明

複数のスプライトを左右に反射移動させるにはforを使ってX座標値を変化させていきます。

座標値を増減させるにはforの後にstepを使って増減値を指定します。負数も指定できます。右から左に移動させる場合は負数を指定する必要があります。このプログラムでは画面外にスプライトを表示するとエラーになります。移動量はエラーにならない範囲で調整してください。

Studioで試す

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

Studio で開く

プログラム

// 複数のスプライトを左右に反射移動させる
cls
for i=0 to 27
  sprite i,28
next
offsetX=0
offsetY=10
do
  for i=0 to 415 step 2
    call drawSprite i,offsetY
  next
  for i=415 to 0 step -2
    call drawSprite i,offsetY
  next
loop
// スプライトを描画するプロシージャ
procedure drawSprite oX,oY
  spriteNo=0
  for y=0 to 3
    for x=0 to 6
      show spriteNo,(oX+x*32,oY+y*40)
      spriteNo=spriteNo+1
    next
  next
end procedure

解説

9行目でforを使って表示するX座標の範囲を指定しています。0から415までの範囲になります。この415という値は横幅の640からスプライトの幅32×7を引いたものになります。移動量に応じて調整する必要があります。step数を大きくした場合は、スプライトの表示座標が640以上になるとエラーになりますので注意してください。

12行目も9〜11行目と同じですが、移動させるX座標が右から左になるため、415から0までの繰り返しになっています。このように値が減る場合は必ずstepを使って負数(マイナスの値)を指定する必要があります。