TI 基本弹跳球动画

TI Basic Bouncing Ball Animation

我正在尝试在 TI Basic 中制作弹跳球动画并且球留下了痕迹,我不知道如何每秒清除图形。这个问题有没有解决办法,如果有请post吧。

我的代码:

ClrDraw
AxesOff
0->Xmin
0->Ymin
94->Xmax
62->Ymax
Xmax/2->X
Ymax/2->Y
1->A
1->B

Line(0, Ymax, Xmax, Ymax)
Line(0, Ymax, 0, 0)
Line(0, 0, Xmax, 0)
Line(Xmax, Ymax, Xmax, 0)

While 1
If X<1 or X>Xmax-3
Then A*-1->A
End

If Y<1 or Y>Ymax-3
Then
B*-1->B
End

Line(X,Y,X+2,Y)
Line(X,Y+1,X+2,Y+1)
Line(X,Y+2,X+2,Y+2)

X+A->X
Y+B->Y

结束

每帧后你有两种选择来清除球:

您可以 运行 ClrDraw 每帧,然后在该帧上绘制球,或者

您可以 运行 在更新球的坐标之前绘制球的代码,但不是用黑色笔颜色绘制,您可以用白色绘制或设置擦除标志,以擦除球. Line() 有一个可选的第 5 个参数,如果它设置为 0,将擦除你的线条而不是绘制它。

你可以使用其中任何一个来删除球保留的 "after-image",但是 ClrDraw 将删除整个屏幕,并且不会保留你之前在那里的任何内容,而不是删除 [=11] =] 技术,只会擦除小球。

但是,代码由您来实现。

我过去使用的一个选项是在对象留下痕迹的两​​侧周围渲染空白。

我认为留下痕迹的是左侧和顶部,因此您可以简单地在渲染球的左侧和上方绘制空白,有效地即时擦除痕迹。

另一种选择是每次迭代都使用 ClrDraw,但这在处理器上效率非常低,并且会减慢动画速度。

你可以使用ClrDraw,但是,它会大大降低程序速度,所以最好使用最后一个参数为0的重绘球来清除痕迹,并且在主循环之前只使用一次ClrDraw。