宣告: 原創不易,未經許可,不得轉載
0.前言
hello,大家好,我是帶你們一起寫遊戲的貓姐。
今天我們接著做小朋友吃蘑菇的小遊戲!在第一集程式碼的基礎上,我們來實現一個小方塊的顯示,效果是這樣的。
pygame
基本框架:
貓姐再強調一下:上面的程式碼雖然只有10行
,卻是pygame
這個框架的精髓,不管你的遊戲是簡單還是複雜,都是建立在這個程式碼的基礎上,所以大家一定要認真領會這10行
程式碼的意思。
1.定義一個方塊類
我們先來實現方塊的顯示,這裡稍微要一點物件導向程式設計的知識,我們用class
定義一個類,類名叫Player
,在類名的括號裡面,傳入pygame.sprite.Sprite
這個類,讓Player
繼承精靈。然後在類裡,實現我們自己的建構函式def __init__(self)
,用super
函式來呼叫精靈父類的建構函式。
class Player(pygame.sprite.Sprite):
def __init__(self):
super(Player, self).__init__()
在建構函式裡面,我們用pygame
的Surface
函式生成一個寬為60畫素,高為30畫素的小方塊,給這個小方塊取個名,叫self.image
。因為螢幕的顏色是黑色的,所以我們要給小方塊填充點不一樣的顏色,用self.image.fill
函式給小方塊填充白色。通過self.image
的get_rect
函式可以得到小方塊的矩形區域,在括號裡面,需要設定矩形區域的顯示位置,也就是最後程式執行起來後,小方塊最初在哪裡顯示。在這裡,我們讓小方塊在螢幕的中心顯示,所以它的左頂點即x的座標為left=WIDTH//2
,左頂點y的座標為top=HEIGHT//2
。
class Player(pygame.sprite.Sprite):
def __init__(self):
super(Player, self).__init__()
self.image = pygame.Surface((60, 30))
self.image.fill("white")
self.rect = self.image.get_rect(left=WIDTH//2, top=HEIGHT//2)
現在程式執行起來沒有任何效果,因為沒有將圖片繪製到遊戲視窗。接下來,我們定義一個update
函式,將小方塊繪製出來。我們呼叫screen.blit
函式,括號裡面傳入的是要顯示的圖片名稱self.image
,以及圖片要在哪裡顯示。
def update(self):
screen.blit(self.image, self.rect)
1.1 方塊的顯示
我們現在將小方塊顯示在遊戲視窗,我們在while
迴圈外面,生成一個player
物件,然後在while
迴圈裡面,呼叫player物件的update
函式,繪製出小方塊!我們執行程式看看效果!
# 例項化Player物件
player = Player()
while True:
for event in pygame.event.get():
if event.type == QUIT:
sys.exit()
player.update()
pygame.display.update()
好了,我們看到小方塊已經顯示出來了!下一集我們讓小方塊動起來!