这里需要改的文件都有 ship.py scoreboard.py game.functions.py 还有主文件aline_invasion.py.
先添加 scoreboard.py
先在头部导入ship
from ship import Ship
然后再调用下面要写的一个函数,这个在__init__(self)添加.
self.prep_ships()
现在写prep_ships()
def prep_ships(self): """剩余飞船数量""" self.ships = Group() for ship_number in range(self.stats.ships_left): ship = Ship(self.ai_settings,self.screen) ship.rect.x = 10+ ship_number * ship.rect.width ship.rect.y = 10 self.ships.add(ship)
然后再show_score()函数里面添加绘制.
self.ships.draw(self.screen)
把飞船绘制在窗口上之后下面就是各种调用这个.game.functions.py里面调用
check_playbutton()的重置计分那里下面添加.
#重置计分 sd.prep_score() sd.prep_high_score() sd.prep_level() sd.prep_ships() #这里是添加的调用
ship_hit()添加sd参数
if stats.ships_left > 0: #将ship_left-1 stats.ships_left -= 1 #更新计分(新添加的调用) sd.prep_ships()
在if之后添加完成后再更新外星人那里在添加sd参数调用
update_aliens() ship_hit() check_aliens_bottom() 都要添加sd参数 因为第一个和第三个 都有嗲用ship_hit()函数。最后在主文件更新,update_alines里面也加添sd参数。这下全部搞定了。
最后这个属于半成品。剩余飞船数的图片太大了,添加一个新的飞船函数去调用它就行。其他bug好像右边移动的时候窗口绘制有问题哪天也修一下。就这样吧。继续学习别的在做笔记。