这里先说一下需要改的文件game_stats.py,scoreboard.py,game_functions.py
alien_invasion.py这几个是需要改的文件,之前添加总分的时候好多没有做笔记,后面直接放出来全部源码.好了下面继续写.
game_stats.py添加一个相当于等级的属性值,但是必须每次在开始的时候重置它,所以在reset_stats()
里面添加self.level = 1
scoreboard.py的__init__添加一个新的方法 self.prep_level()
在最下面添加就行.
下面是prep_level()
def prep_level(self): self.level_image = self.font.render(str(self.stats.level),True, self.text_color,self.ai_settings.bg_color) self.level_rect = self.level_image.get_rect() self.level_rect.right = self.score_rect.right self.level_rect.top = 40def show_score(self): self.screen.blit(self.score_image,self.score_rect) self.screen.blit(self.high_score_image,self.high_score_rect) self.screen.blit(self.level_image,self.level_rect) #这段是新添加的
game_functions.py需要改的是消灭全部飞机群之后提升一个等级所以在这里添加.check_bullet_alien_collisions() 里面多添加一个sd
在if判断后面添加
if len(aliens) == 0: #删除现有的子弹并创建一群新敌对飞机 bullets.empty() sisettings.increase_speed() #提高等级(下面是新添加的) stats.level += 1 sd.prep_level
check_play_button()也添加sd
下面是重置计分代码
pygame.mouse.set_visible(False) #重置统计设置 stats.reset_stats() stats.game_active = True #重置计分(下面这三段是新添加的) sd.prep_score() sd.prep_high_score() sd.prep_level() #清空飞机群列表和子弹类表 aliens.empty() bullets.empty()
check_event()也添加sd 下面调用的check_play_button()也添加sd.
最后主文件check_event()也添加sd.运行一下试试.