之前已經介紹過如何在遊戲視窗中隨機出現物件(禮物)並自動落下的操作
但之前因為一些觀念尚未介紹,且考慮到初學者需按部就班了解各個遊戲中(程式)元素的操控及設計核心,所以只設計了產生一組禮物從天而降的設計。
這樣的操作,當然沒有辦法滿足設計遊戲元素的需求,通常遊戲中的元素會有數量及個別「屬性」設定的操作需求,而這也是遊戲設計中最重要、最精采也是最燒腦的核心。
而對於這樣一種既有共同特性(例如:從天而降的禮物),又需要有個別化的「屬性(參數)」或「行為」(例如:降落的速度,顯示的位置...等等),有經驗的設計者自然會想到使用所謂的「物件導向模式」(OOP)中的類別(Class)設計模式,來為每個遊戲中的物件元素進行「屬性」及「行為」的設定。
但是同樣的,我們現階段依然採用「土法煉鋼」方式進行遊戲中物件元素的設計方式進行操作及說明,為的依然是讓學習者及自己能夠更為精確的理解「物件」設計的核心思維及關鍵概念,為日後的「函式(Function)」及Class(類別)學習及操作建立良好的基礎知能。
好囉~~~現在正式進入主題!
本次的目標有二:
一、可以在遊戲中設定出現指定數量的物件(禮物),這次我們預設遊戲視窗中保持有五個從天而降的禮物物件。
二、上述各物件(禮物)會隨機出現在遊戲視窗中,並各自落下。
為了達成以上的目標,我們必須先從前面的各篇文章取思考以下的設計關鍵點:
1.遊戲中的物件(禮物、小車等)是如何藉由(rect)矩形座標物件將圖形繪製(顯示)在視窗中的!
範例語法: screen.blit(gift_img, gift_rect) # 在視窗中的gift_rect座標繪製gift_img圖形
2.如何能夠隨機設定禮物(物件)的矩形座標(rect),讓物件隨機出現在視窗中。
範例語法: gift_rect.centerx = random.randrange(0, screen_rect.width)
3.如何偵測視窗中的物件數量,並讓這些物件能夠保持在設定的數量並出現在視窗中並落下?
(也就是保持有五個禮物物件並讓這些禮物自動落下)
---關鍵來了~~(個人習慣)若發現有「一批」物件要做同樣的事
(例如:隨機產生五個禮物的出現位置、五個禮物都要自動落下...等),
就可以考慮使用串列(list)+for(條件式迴圈)來進行思考及設計。
~~~串列(list)可以將一組物件加以組合,並透過for迴圈進行同樣的行為(動作)設計
好囉~~所以,我們在之前隨機出現單一物件並自動落下的設計基礎上,持續強化程式如下,達成上述的目標及設計理念。










