目标,显示英雄飞机的得分,生命值,BOSS机的动态生命条
战斗界面中,信息数据是必不可少的,一般都包括得分值,当遇到BOSS时,还会显示BOSS的动态生命条,还有其他的飞机数量,炸弹数量等。不管生命信息,原理都是一样的。
假设你有一个BOSS类,继承于pygame.sprite.Sprite,BOSS有HP值属性。
还有英雄飞机,继承于pygame.sprite.Sprite,属性里有得分和生命。
显示信息一般在主类里,用 pygame.Surface.blit()来绘制,在主类里面取得所需的HP值,得分,生命。用类似
# 绘制玩家信息
hero_info = self.my_font.render('score:' + str(self.hero_score), True,
(255, 0, 0))
hero_life = self.my_font.render("生命:" + str(self.hero.HP), True,
(0, 255, 0))
self.scene.blit(hero_info, (0, 0))
self.scene.blit(hero_life, (self.size[0] - 100, 0))
这样的方法在屏幕显示。
但是当显示的信息是多样化,列如要显示BOSS的生命条,要显示小BOSS的生命条,生命条要随飞机移动,要显示伤害值等等数据或者图像的时候,在主函数里就显得不大方便了,管理起来很麻烦。
其实可以在每个sprite里设置各自的显示方式,对自己的显示方式进行自己管理。
pygame