用Python和Pygame寫遊戲-從入門到精通(4)

發表於2015-12-04

不過5月上旬,氣溫居然就到了33℃,這日子真是不讓人活了……

另外今天是母親節啊,不知道上什麼圖片就上這張吧~~

今天說明字型模組和一些錯誤處理。

使用字型模組

就像上一次說的,一個遊戲,再怎麼寒磣也得有文字,俄羅斯方塊還有個記分數的呢;印象中沒有文字的電子遊戲只有電腦剛剛誕生的那種打乒乓的了。Pygame可以直接呼叫系統字型,或者也可以使用TTF字型,稍有點電腦知識的都知道這是什麼。為了使用字型,你得先建立一個Font物件,對於系統自帶的字型:

第一個引數是字型名,第二個自然就是大小,一般來說“Arial”字型在很多系統都是存在的,如果找不到的話,就會使用一個預設的字型,這個預設的字型和每個作業系統相關,你也可以使用pygame.font.get_fonts()來獲得當前系統所有可用字型。還有一個更好的方法的,使用TTF的方法:

這個語句使用了一個叫做“my_font.ttf”,這個方法之所以好是因為你可以把字型檔案隨遊戲一起分發,避免使用者機器上沒有需要的字型。。一旦你建立了一個font物件,你就可以使用render方法來寫字了,然後就能blit到螢幕上:

第一個引數是寫的文字;第二個引數是個布林值,以為這是否開啟抗鋸齒,就是說True的話字型會比較平滑,不過相應的速度有一點點影響;第三個引數是字型的顏色;第四個是背景色,如果你想沒有背景色(也就是透明),那麼可以不加這第四個引數。

下面是一個小例子演示下文字的使用,不過並不是顯示在螢幕上,而是存成一個圖片檔案

追加說明一下如何顯示中文,這在原書可是沒有的哦:) 簡單來說,首先你得用一個可以使用中文的字型,宋體、黑體什麼的,或者你直接用中文TTF檔案,然後文字使用unicode,即u”中文的文字”這種,最後不要忘了原始檔里加上一句關於檔案編碼的“魔法註釋”,具體的可以查一下Python的編碼方面的文章。舉一個這樣的例子:

 

Pygame的錯誤處理

程式總會出錯的,比如當記憶體用盡的時候Pygame就無法再載入圖片,或者檔案根本就不存在。再比如下例:

對付這種錯誤一個比較好的方法:

其實就是Python的標準的錯誤捕捉方法就是了,實際的遊戲(或者程式)中,錯誤捕捉實在太重要了,如果你寫過比較大的應用,應該不用我來說明這一點,Pygame中也是一樣的。

Pygame的基礎就到這裡,後面我們會進行一些高階的介紹,下一次的話,就開始講畫東西了~

相關文章