上一篇(Python游戏之Pygame——太空飞机大战(三))完成了英雄战机和星空,那么基本上飞机大战的主要元素都已经完成,该是总结成功玩自己游戏的时候了。
哦,差点忘了,Bullet类对于普通子弹和导弹发射来说是通用的,但是对于核弹,发射核弹部分当然也是相同的,但核弹爆炸的效果图以及杀伤情况就完全不同了。下面先给出展示核弹爆炸的方法:
# 处理核弹爆炸,由于核弹爆炸属于特殊事件,放在类里处理不合OOP理念。当然也可以单独为核弹做一个类,不放在 Bullet 类中
def nuclear_explosiing(targetSurf, sound):
for nuclear in nuclearGroup:
if nuclear.rect.top < 500:
nuclear.image = pygame.image.load(IMAGE_PATH + "nuclear_explosing.png").convert_alpha()
for i in range(10):
nuclear.image = pygame.transform.smoothscale(nuclear.image, (110 + 150 * i, 110 + 150 * i))
nuclear.rect = Rect((0, 0), nuclear.image.get_size())
nuclear.rect.center = (SCREEN_SIZE[0] // 2, SCREEN_SIZE[1] // 3)
targetSurf.blit(nuclear.image, nuclear.rect)
pygame.display.update()
sound.play()
# 核弹 kill
nuclear.kill()
return True
return False
这里主要使用了pygame的transform功能,如果想让核弹爆的过程炸稍微慢一点,可以在update()后添加一个延时方法就可以了。有兴趣的朋友可以自己试一下。
下面开始主程序了。
def main():
pygame.init()
screen = pygame.display.set_mode(SCREEN_SIZE, 0

本文是Python游戏开发系列的第四篇,介绍了如何使用Pygame库创建太空飞机大战游戏。主要内容包括实现核弹爆炸效果,游戏主程序,素材的使用,以及文件组织结构。文章鼓励读者动手实践,探索游戏的更多可能性,如记分系统、战机选择等,并提供了优化代码的建议。
最低0.47元/天 解锁文章
1150

被折叠的 条评论
为什么被折叠?



