目前為止,我們已經讓球移動了一次!下面來看能不能用一種更逼真的方式讓它移動。在屏幕上完成動畫時,最好按小步移動,這樣運動看起來是流暢的。下面試試用更小的步移動沙灘球。
我們並不只是讓每一步更小,還要增加一個循環來移動沙灘球(因為我們希望建立很多小步)。在代碼清單 16-12 的基礎上編輯代碼,改為代碼清單 16-13 所示的程序。
如果運行這個程序,應該能看到沙灘球從原先的位置一直移動到窗口的右邊。
代碼清單 16-13 流暢地移動沙灘球圖像
讓球一直移動
在前面的程序中,球一直移動到窗口右邊,然後停下來。現在我們來讓球一直移動下去。
如果只是增加 x
會發生什麼?隨著 x
值的增加,沙灘球會一直右移。不過我們的窗口(顯示表面)在 x = 640
時就到頭了。所以球會消失。試著把代碼清單 16-13 第 10 行中的 for
循環改為:
for looper in range (1, 200):
現在循環運行次數是原先的兩倍,球會從邊界消失!如果希望繼續看到球,有兩個選擇。
讓球從窗口邊界反彈。
讓球重新翻轉到窗口的另一邊。
下面來看如何實現這兩種做法。