pygame飛機大戰關於子彈的設計(二)

2021-10-23 22:39:07 字數 968 閱讀 6582

遊戲後期,敵機數量較多,若我方死亡後子彈直接降為初始1級子彈,容易造成玩家「心理陰影」,影響遊戲體驗!

所以,增加復活補給子彈儲存機制

復活補給:即我方飛機死亡,重新復活時,立即生成補給包以提高子彈等級,增強作戰能力:

if me_destroy_index ==0:

me.reset(

) bullet_supply.reset(

) life_num -=

1

子彈儲存:即在我方飛機子彈已經是滿級時,「吃到」補給即無任何增強,容易導致玩家「生氣」,故採用儲存機制。只要「吃到」補給,子彈等級累加:

#雙發子彈等級

if bullet_supply.choice ==

"bullet"

: bullet_level +=

1#s型子彈等級

if bullet_supply.choice ==

"bullet3"

: bullet3_level +=

1

我方飛機死亡時,雙發子彈等級-2,s型子彈等級-1:

if bullet_level >2:

bullet_level -=

2else

: bullet_level =

1if bullet3_level >1:

bullet3_level -=

1else

: bullet3_level =

0

即需玩家盡可能」吃到「更多補給,才能在後期死亡復活時擁有更強大的**!

往期文章及原始碼如下:

pygame飛機大戰關於子彈的設計(一)

pygame之飛機大戰子彈360度角度的演算法

當子彈擁有一定角度的時候,可以在子彈的set speed 函式裡,算出子彈x,y兩個方向的速度,輸入角度是degree換成弧度radian def set speed self,speed,angle 0 self.speed speed self.angle angle angle math.pi...

pygame飛機大戰3

self.destroy images.extend pygame.image.load images enemy1 down1.png convert alpha pygame.image.load images enemy1 down2.png convert alpha pygame.imag...

pygame飛機大戰4

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