我正在尝试用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结束
发布于 2017-09-21 04:03:07
您有两个选项可以在每一帧之后清除球:
您可以在每一帧中运行ClrDraw,然后在该帧上绘制球,或者
您可以在更新球的坐标之前运行代码来绘制球,但您可以使用白色绘制或设置擦除标志来擦除球,而不是使用黑色笔色绘制。Line()有一个可选的第5个参数,如果它设置为0,将擦除您的线条,而不是绘制它。
您可以使用这两种方法之一来删除球保留的“余像”,但ClrDraw将擦除整个屏幕,并且不保留您以前拥有的任何内容,而擦除Line()技术只会擦除球。
但是,代码的实现取决于您。
发布于 2018-01-04 02:15:50
我在过去使用过的一种选择是在物体留下痕迹的侧面周围渲染为空白。
我相信是左边和顶部留下了痕迹,所以你可以简单地在渲染球的左边和上方画一个空白,有效地消除飞行中的痕迹。
另一种选择是每次迭代都使用ClrDraw,但这在处理器上的效率非常低,并且会减慢动画的速度。
发布于 2019-05-04 10:45:15
你可以使用ClrDraw,但是它极大地减慢了程序的运行速度,所以最好使用最后一个参数为0的redraw来清除轨迹,并且在主循环之前只使用ClrDraw一次。
https://stackoverflow.com/questions/45765470
复制相似问题