PyGame 指南/二維遊戲開發概念
如果你之前上過程式設計課,你可能已經瞭解程式從上→下逐行執行,直到它到達原始碼檔案的末尾。在它逐行執行程式碼的過程中,它會在等待使用者輸入時暫停,然後在接收到輸入後繼續執行。到達檔案末尾後,程式會自動退出,除非你在其中添加了某種迴圈來保持它執行。
如果我們不希望程式自動退出,我們通常會在程式中某個位置放置一個程式迴圈,在這個迴圈中,每迴圈一次都會執行相同型別的任務……這可能包括顯示選單,讓使用者選擇要執行的操作,執行該操作,然後返回選單。類似地,如果遊戲在啟動後立即退出,那麼它就不太可玩。遊戲也有一個遊戲迴圈,其中一些常見事件在遊戲的每個迴圈中都會執行。

在遊戲過程中,它首先執行的一組程式碼——在遊戲迴圈開始之前——是設定或初始化程式碼。這是初始化變數、將資產載入到記憶體中以及為遊戲做好準備的地方。一旦進入遊戲迴圈,遊戲將始終檢查玩家輸入(玩家是否按下了“右”箭頭鍵?玩家是否點選了按鈕?)、更新遊戲物件(將所有敵人向玩家移動 5 個畫素),以及繪製到螢幕上(繪製背景、世界、玩家和敵人)。我們將為每種型別的事件編寫程式碼,但 PyGame 會幫助我們。
當然,我們也可以編寫函式來處理特定任務,但是一旦函式執行完畢,程式流程就會從函式呼叫所在的下一行程式碼繼續執行。
在計算機圖形學中,(x, y) 座標用於將影像和文字放置在螢幕上。你可能還記得代數中的座標系。雖然這裡應用了相同的想法,但座標系的佈局略有不同。
在計算機圖形學中,座標系的原點通常位於 (0, 0)。當你向右移動時,x 值會增加,當你向下移動時,y 座標會增加。


變數是記憶體中的位置,我們可以儲存資料。這些資料可以像數字或一串文字一樣簡單,也可以更復雜,例如一個硬幣物件或一個非玩家角色物件。例如,我們每個遊戲角色都將有一個(x, y) 座標,這樣遊戲就知道在哪裡將角色繪製到螢幕上。角色可能還會有一個分數變數,或一個名稱變數,或許多其他東西。
最好使用變數,而不是在整個程式中硬編碼值。如果資料儲存在變數中,則更容易進行修復或更改——如果你的角色在關卡中的起始位置錯誤,你必須在遊戲的所有關卡中更新這些座標,怎麼辦?在命名變數時,還有一些規則需要遵守。你不能在變數名中包含空格,不能以數字開頭(儘管它可以包含數字),也不能是關鍵字(如if)。
函式是可以執行的一組指令。函式有名稱(如“AddToScore”),可以反覆使用。這樣,你就不必每次想要執行任務時都編寫相同的程式碼:只需呼叫函式即可!
函式可以有輸入和輸出。輸入通常稱為引數,輸出稱為返回值。
例如,如果我們有一個AddToScore 函式,它的輸入可能是“我們要將多少加到分數中?”,它的輸出可能是“新增這個數量後,分數是多少?”
在程式碼形式中,它在 Python 中看起來像這樣
def AddToScore( score, amount ): # score and amount are the inputs
score = score + amount # adding onto the score variable
return score # return the result of the math
函式並不總是需要有輸入或輸出,這取決於函式的任務是什麼。
類是讓我們(程式設計師)建立自己的變數資料型別的一種方法。預設情況下,我們可以使用像整數(整數)和字串(帶雙引號的文字)這樣的變數,但如果我們想要建立一個具有多個屬性的遊戲角色,例如名稱、座標、等級等,我們可以編寫一個類來完成這項工作。
類可以包含成員函式和變數,這樣我們就可以讓我們的物件擁有功能和屬性。
|
兔子物件 變數
函式
|
類的優點是,一旦你定義了一個類,你就可以建立任意數量的該類型別的變數。換句話說,一旦你實現了一個Player 類,你就可以重複使用相同的程式碼來建立你的player1, player2, player3和player4!
