pygame给飞船添加等级

这里先说一下需要改的文件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 = 40

def 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.运行一下试试.

标签

发表评论

评论列表(24)