我一直在尝试在 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 秒(循环中的总毫秒数),然后一次向上移动。我怎样才能实现我想要的并解决这个问题?