pygame飛機大戰3

2021-08-17 10:00:42 字數 995 閱讀 6639

self.destroy_images.extend([\

pygame.image.load("images/enemy1_down1.png").convert_alpha(), \

pygame.image.load("images/enemy1_down2.png").convert_alpha(), \

pygame.image.load("images/enemy1_down3.png").convert_alpha(), \

pygame.image.load("images/enemy1_down4.png").convert_alpha() \

新增(飛機被摧毀的過程圖)

先設定self.active=true,表示飛機存活,發生碰撞後呼叫毀滅過程

然後呼叫reset函式

if not(delay % 3):

if e2_destroy_index == 0:

enemy2_down_sound.play()

screen.blit(each.destroy_images[e2_destroy_index], each.rect)

e2_destroy_index = (e2_destroy_index + 1) % 4

if e2_destroy_index == 0:

each.reset()

飛機毀滅,先呼叫 e2_destroy_index=0的,然後1,2,3,

呼叫完3後,變為0再呼叫reset

pygame.sprite.spritecolode(me,enemies,false)

碰撞檢測返回的是列表,但這個碰撞檢測的是個矩形,使用者體驗不佳

pygame.mask.from_su***ce(self.image)

pygame.sprite.spritecollide(me, enemies, false, pygame.sprite.collide_mask)

mask標記不透明的部分,檢測不透明部分,這下是完美碰撞了

pygame飛機大戰開發實錄3

通過之前的講解,了解了一些相關原理和基本的控制方法。接下來就可以開始編寫 飛機大戰 了。開始之前,先說一說,為什麼要以物件化程式設計,之前的例子裡的指令碼,都是以過程化編寫,而實際開發則以物件化為主。這裡把飛機移動的指令碼,按物件化重新編寫,右邊是原來的指令碼。乍一看,物件化好像要複雜一些。進一步觀...

pygame飛機大戰4

pygame.mask.from su ce self,image 對的非透明部分做標記 pygame.sprite.spritecollide b,enemies,false,pygame.sprite.collide mask 完美檢測碰撞 me.rect.midtop,子彈生成在飛機的中間的頂...

pygame飛機大戰5

score font.render score s str score true,white render函式把字元字串轉換為su ce物件 true拒絕鋸齒 paused rect.collidepoint event.pos 在paused rect矩形類裡有collidepoint event...