获取飞机矩阵、位置、飞机动作
This commit is contained in:
parent
9d0f674c33
commit
344e7e3e7f
|
@ -111,3 +111,47 @@ class EnemyPlane(object):
|
|||
self.endtime = pygame.time.get_ticks()
|
||||
self.set_pos(random.randint(
|
||||
0, self.main_scene.size[1] - self.rect[2] - 20), 0)
|
||||
# 获得飞机矩形
|
||||
|
||||
def rect(self):
|
||||
return self.rect
|
||||
|
||||
# 设置飞机位置
|
||||
def set_pos(self, x, y):
|
||||
self.rect[0] = x
|
||||
self.rect[1] = y
|
||||
|
||||
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位置开始 向右排列三颗子弹
|
||||
posx = self.rect[0] - 9
|
||||
# # 依次设置选择子弹的初始位置,并将其设置为发射状态、移动速度
|
||||
for bullet in wait_for_shot:
|
||||
bullet.visible = True
|
||||
bullet.set_speed(5)
|
||||
bullet.set_pos(posx, self.rect[1] + self.rect[3] / 2)
|
||||
posx = posx + self.rect[2]/2
|
||||
|
||||
# 飞机动作
|
||||
def action(self):
|
||||
# 飞机每次移动向上移动self.speed速度
|
||||
self.rect.move_ip(0, self.speed)
|
||||
# 如果飞机移动出屏幕则将飞机设置为不可见状态
|
||||
if self.rect[1] > self.main_scene.size[1]:
|
||||
self.visible = False
|
||||
|
|
Loading…
Reference in New Issue