【问题标题】:TI Basic Bouncing Ball AnimationTI 基本弹跳球动画
【发布时间】:2017-08-18 21:50:31
【问题描述】:

我正在尝试在 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

结束

【问题讨论】:

  • 谁能帮帮我
  • 在循环中包含 ClrDraw 以清除图形,就像您在代码开头已经做的那样。
  • 我有一个简短的问题需要澄清:您希望图表每秒清除一次还是每次反弹后清除?

标签: ti-basic


【解决方案1】:

你有两种选择在每一帧之后清除球:

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

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

您可以使用其中任何一种来删除球保留的“残像”,但ClrDraw 将擦除整个屏幕,并且不会保留您之前的任何内容,这与擦除Line() 技术相反,后者将只擦除球。

不过,代码由您来实现。

【讨论】:

    【解决方案2】:

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

    我相信留下痕迹的是左侧和顶部,因此您可以在渲染球的左侧和上方简单地画一个空白,有效地在飞行中擦除痕迹。

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-05-26
        • 1970-01-01
        • 1970-01-01
        • 2013-12-22
        • 1970-01-01
        相关资源
        最近更新 更多