飞机移动及发射导弹
This commit is contained in:
parent
4db86ace2e
commit
a4b13c30aa
52
boss.py
52
boss.py
|
@ -45,4 +45,54 @@ class BossPlane(EnemyPlane):
|
||||||
if self.rect[0] < leftX or self.rect[0] > rightX:
|
if self.rect[0] < leftX or self.rect[0] > rightX:
|
||||||
self.speed = -self.speed
|
self.speed = -self.speed
|
||||||
self.rect[0] += self.speed
|
self.rect[0] += self.speed
|
||||||
|
# 如果飞机移动出屏幕则将飞机设置为初始
|
||||||
|
if self.rect[1] > self.main_scene.size[1]:
|
||||||
|
self.set_pos(240, 0)
|
||||||
|
|
||||||
|
self.interval_index += 1
|
||||||
|
if self.interval_index < self.interval:
|
||||||
|
return
|
||||||
|
self.interval_index = 0
|
||||||
|
|
||||||
|
self.index = self.index + 1
|
||||||
|
if self.index >= len(self.images):
|
||||||
|
self.index = 0
|
||||||
|
self.visible = False
|
||||||
|
self.image = self.images[self.index]
|
||||||
|
self.mask = pygame.mask.from_surface(self.image)
|
||||||
|
|
||||||
|
def shot(self):
|
||||||
|
starttime = pygame.time.get_ticks()
|
||||||
|
passtime = starttime - self.endtime
|
||||||
|
if passtime < self.interval:
|
||||||
|
return
|
||||||
|
self.endtime = starttime
|
||||||
|
|
||||||
|
# 每次发射三颗子弹
|
||||||
|
wait_for_shot = []
|
||||||
|
# 从子弹列表取出3颗目前尚未发射的子弹
|
||||||
|
# 如果子弹的visible为false,说明子弹尚未发射
|
||||||
|
for bullet in self.bullets:
|
||||||
|
# 如果子弹不可见,说明子弹闲置状态
|
||||||
|
if not bullet.visible:
|
||||||
|
wait_for_shot.append(bullet)
|
||||||
|
if len(wait_for_shot) >= 3:
|
||||||
|
break
|
||||||
|
# 子弹发射位置,从posx位置开始 向右排列三颗子弹
|
||||||
|
posx = self.rect[0] - 15
|
||||||
|
# 依次设置选择子弹的初始位置,并将其设置为发射状态、移动速度
|
||||||
|
for bullet in wait_for_shot:
|
||||||
|
bullet.visible = True
|
||||||
|
posx = posx + 30
|
||||||
|
bullet.set_speed(4)
|
||||||
|
bullet.set_pos(posx + 3, self.rect[1] + self.rect[3] / 2)
|
||||||
|
|
||||||
|
def draw(self):
|
||||||
|
for bullet in self.bullets:
|
||||||
|
if bullet.visible:
|
||||||
|
bullet.draw()
|
||||||
|
# if not self.visible:
|
||||||
|
# return
|
||||||
|
self.main_scene.scene.blit(
|
||||||
|
self.images[self.index], (self.rect[0], self.rect[1]))
|
||||||
|
# print('BOSS HP' + str(self.HP))
|
||||||
|
|
Loading…
Reference in New Issue