我正在尝试在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
结束
答案 0 :(得分:3)
每个帧后你有两个选项来清除球:
你可以在每帧之前运行ClrDraw
,然后在那个框架上画球,或者
你可以在更新球的坐标之前运行代码来绘制球,但不是用黑色笔绘画,你可以用白色绘制或设置擦除标记,以擦除球。 Line()
有一个可选的第5个参数,如果它设置为0,则会删除你的行而不是绘制它。
您可以使用其中任何一个删除&#34; After-image&#34;球保持不变,但ClrDraw
将擦除整个屏幕,并保留之前没有的任何内容,而不是擦除Line()
技术,这只会擦除球。
但是,代码由您来实现。
答案 1 :(得分:0)
我过去使用过的一个选项是在对象的两侧留下空白。
我相信左边和顶部留下了小径,所以你可以简单地在左边和上面画一个空白的地方,有效地擦除了飞行中的踪迹。
另一种选择是每次迭代都使用ClrDraw,但这在处理器上效率非常低,并且会降低动画速度。
答案 2 :(得分:0)
您可以使用ClrDraw,但是它会极大地减慢程序的速度,因此最好使用重绘最后一个参数为0的球来清除痕迹,并且最好仅在主循环之前使用ClrDraw一次。