精靈與精靈組
在剛剛完成的案例中,圖像加載、位置變化心例、繪制圖像都需要程序員編寫代碼分別處理演顾,為了簡化開發(fā)步驟供搀,pygame提供了兩個(gè)類:
- ·pygame.sprite.Sprite`——存儲(chǔ)圖像數(shù)據(jù)image和位置rect的對(duì)象
-
pygame.sprite.Group
注:sprite是精靈的意思,group是組钠至、群的意思
派生精靈子類
- 新建
plane_sprites.py
文件 - 定義
GameSprite
繼承自pygame.sprite.Sprite
注意:
如果一個(gè)類的父類不是object
葛虐,在重寫初始化方法是,一定要先super()
一下父類的__init__
方法棉钧,保證父類中實(shí)現(xiàn)的__init__
代碼能夠被正常執(zhí)行
屬性:
-
image
精靈圖像屿脐,使用image_name
加載 -
rect
精靈大小,默認(rèn)使用圖像大小 -
speed
精靈移動(dòng)速度宪卿,默認(rèn)為1
方法:
update
每次更新屏幕時(shí)在游戲循環(huán)內(nèi)調(diào)用的诵,讓精靈的self.rect.y += self.speed
提示:image
的get_rect()
方法,可以返回pygame.Rect(0, 0, 圖像寬, 圖像高)
的對(duì)象
使用游戲精靈和精靈組創(chuàng)建敵機(jī)
需求:使用剛剛派生的游戲精靈和精靈組創(chuàng)建敵機(jī)并且實(shí)現(xiàn)敵機(jī)動(dòng)畫效果
步驟:
- 使用
from
導(dǎo)入plane_sprites
模塊
-
from
導(dǎo)入的模塊可以直接使用 -
import
導(dǎo)入的模塊需要通過模塊名.來使用
- 在游戲初始化創(chuàng)建精靈對(duì)象和精靈組對(duì)象
- 在游戲循環(huán)中讓精靈組分別調(diào)用
update()
和draw(screen)
方法
職責(zé):
精靈:封裝圖像image佑钾、位置rect和速度speed奢驯,提供update()
方法,根據(jù)游戲需求更新位置rect
精靈組:包含多個(gè)精靈對(duì)象次绘,讓所有精靈調(diào)用update()
方法更新位置瘪阁,使用draw(screen)
方法在screen
上繪制精靈組中所有精靈