diff --git a/alien_invasion.py b/alien_invasion.py index 8ecb28b..64d3d92 100644 --- a/alien_invasion.py +++ b/alien_invasion.py @@ -34,18 +34,18 @@ def run_game(): # 开始游戏主循环 while True: - # 监视键盘和鼠标事件 - gf.check_events(ai_settings, screen, stats, sb, play_button, ship, aliens, bullets) + # 监视键盘和鼠标事件 + gf.check_events(ai_settings, screen, stats, sb, play_button, ship, aliens, bullets) - if stats.game_active: - # 移动飞船 - gf.update_ship(ship) - # 更新子弹位置 - gf.update_bullets(ai_settings, screen, stats, sb, ship, aliens, bullets) - # 更新外星人 - gf.update_aliens(ai_settings, stats, screen, sb, ship, aliens, bullets) - # 更新屏幕 - gf.update_screen(ai_settings, screen, stats, sb, ship, aliens, bullets, play_button) + if stats.game_active: + # 移动飞船 + gf.update_ship(ship) + # 更新子弹位置 + gf.update_bullets(ai_settings, screen, stats, sb, ship, aliens, bullets) + # 更新外星人 + gf.update_aliens(ai_settings, stats, screen, sb, ship, aliens, bullets) + # 更新屏幕 + gf.update_screen(ai_settings, screen, stats, sb, ship, aliens, bullets, play_button) run_game() \ No newline at end of file diff --git a/bullet.py b/bullet.py index 3deba69..c3ac79b 100644 --- a/bullet.py +++ b/bullet.py @@ -2,30 +2,33 @@ import pygame from pygame.sprite import Sprite import time + class Bullet(Sprite): '''飞船子弹进行管理''' - def __init__(self,ai_settings,screen,ship): - super(Bullet,self).__init__() - self.screen = screen + def __init__(self, ai_settings, screen, ship): + super(Bullet, self).__init__() - # 创建子弹矩形初始位置(0,0,3,15)分别对应lef,top,宽,高 - self.rect = pygame.Rect(0,0, - ai_settings.bullet_width, ai_settings.bullet_height) + self.screen = screen - self.rect.centerx = ship.rect.centerx # 设置中心点x轴坐标跟飞船一致 - self.rect.top = ship.rect.top # 设置y轴坐标顶部跟飞船一致 + # 创建子弹矩形初始位置(0,0,3,15)分别对应lef,top,宽,高 + self.rect = pygame.Rect(0, 0, + ai_settings.bullet_width, ai_settings.bullet_height) - # 设置成小数进行计算 - self.top = float(self.rect.top) + self.rect.centerx = ship.rect.centerx # 设置中心点x轴坐标跟飞船一致 + self.rect.top = ship.rect.top # 设置y轴坐标顶部跟飞船一致 - self.color = ai_settings.bullet_color - self.speed_factor = ai_settings.bullet_speed_factor + # 设置成小数进行计算 + self.top = float(self.rect.top) + + self.color = ai_settings.bullet_color + self.speed_factor = ai_settings.bullet_speed_factor def update(self): - self.top -=self.speed_factor - self.rect.top = self.top - print(self.rect.top) + self.top -= self.speed_factor + + self.rect.top = self.top + print(self.rect.top) def draw_bullet(self): - pygame.draw.rect(self.screen,self.color,self.rect) \ No newline at end of file + pygame.draw.rect(self.screen, self.color, self.rect) \ No newline at end of file