0

私は Small Basic でジャンプをシミュレートしようとしてきました。最初は簡単だと思っていたのですが、思ったよりもトリッキーです。for ループでアニメーション (または移動) を使用しようとすると、プログラムは常に開始時に割り当てた遅延を配置し、その後に単一のアニメーション/移動を実行するように見えます。例えば:

GraphicsWindow.Height = 480
GraphicsWindow.Width = 640

pX = 300
pY = 220

GraphicsWindow.KeyDown = KeyPressed

player = Shapes.AddEllipse(40, 40)
Shapes.Move(player, 300, 220)

Sub KeyPressed
  If GraphicsWindow.LastKey = "Space" Then
    For i = 1 To 10
      pY = pY - (10 - i)
      Shapes.Move(player, pX, pY)
      Program.Delay(100)
    EndFor
  EndIf
EndSub

このプログラムは円の位置を減少率で増加させると予想しますが、代わりに 1 秒 (ループ内の合計ミリ秒数) 待機してから、一度に全体を上に移動します。どうすれば私が望むものを達成し、これを修正できますか?

4

2 に答える 2