TI Basic Bouncing Ball动画

时间:2017-08-18 21:50:32

标签: ti-basic

我正在尝试在TI Basic中制作一个弹跳球动画,并且球正在留下痕迹,我无法弄清楚如何每秒清除图形。是否有解决此问题的方法,如果有,请发布。

我的代码:

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

结束

3 个答案:

答案 0 :(得分:3)

每个帧后你有两个选项来清除球:

你可以在每帧之前运行ClrDraw,然后在那个框架上画球,或者

你可以在更新球的坐标之前运行代码来绘制球,但不是用黑色笔绘画,你可以用白色绘制或设置擦除标记,以擦除球。 Line()有一个可选的第5个参数,如果它设置为0,则会删除你的行而不是绘制它。

您可以使用其中任何一个删除&#34; After-image&#34;球保持不变,但ClrDraw将擦除整个屏幕,并保留之前没有的任何内容,而不是擦除Line()技术,这只会擦除球。

但是,代码由您来实现。

答案 1 :(得分:0)

我过去使用过的一个选项是在对象的两侧留下空白。

我相信左边和顶部留下了小径,所以你可以简单地在左边和上面画一个空白的地方,有效地擦除了飞行中的踪迹。

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

答案 2 :(得分:0)

您可以使用ClrDraw,但是它会极大地减慢程序的速度,因此最好使用重绘最后一个参数为0的球来清除痕迹,并且最好仅在主循环之前使用ClrDraw一次。