目前为止,我们已经让球移动了一次!下面来看能不能用一种更逼真的方式让它移动。在屏幕上完成动画时,最好按小步移动,这样运动看起来是流畅的。下面试试用更小的步移动沙滩球。
我们并不只是让每一步更小,还要增加一个循环来移动沙滩球(因为我们希望建立很多小步)。在代码清单 16-12 的基础上编辑代码,改为代码清单 16-13 所示的程序。
如果运行这个程序,应该能看到沙滩球从原先的位置一直移动到窗口的右边。
代码清单 16-13 流畅地移动沙滩球图像
让球一直移动
在前面的程序中,球一直移动到窗口右边,然后停下来。现在我们来让球一直移动下去。
如果只是增加 x
会发生什么?随着 x
值的增加,沙滩球会一直右移。不过我们的窗口(显示表面)在 x = 640
时就到头了。所以球会消失。试着把代码清单 16-13 第 10 行中的 for
循环改为:
for looper in range (1, 200):
现在循环运行次数是原先的两倍,球会从边界消失!如果希望继续看到球,有两个选择。
让球从窗口边界反弹。
让球重新翻转到窗口的另一边。
下面来看如何实现这两种做法。