又到周一了,小伙伴们周末过得可好?是不是有人刚刚结束了无聊的暑假,又开始丰富多彩的校园生活了?
上周最后的课里说了,这次我们要来加入一大波飞机正在接近的效果。这个要比之前的子弹容易实现多了。因为只要让飞机不停地从屏幕上方出现就好了,不用管它具体的间隔怎样,看上去像那么回事就可以。
之前我们单个飞机已经完成了在屏幕上方区域内随机出现,并且到底底部后重新回上方的功能。现在要做的,仅仅是把一架敌机换成一组敌机:
enemies = []
for i in range(5):
enemies.append(Enemy())
创建5个Enemy的对象,把它们添加到一个叫做enemies的list中。
然后,在主循环里,去处理每一架敌机的运动:
for e in enemies:
e.move()
screen.blit(e.image, (e.x, e.y))
如果你觉得几架敌机的运动状态还是比较接近,试着调节它们速度随机范围,以及出现的位置范围。它们在屏幕上方出现的范围选择越大,在游戏中新增敌机的间隔随机性就越大。
That's all. 就这么多。感谢面向对象让我们省去了很多代码量。运行游戏看看有没有不断各种敌机前赴后继进攻的感觉?
想要完整源代码的可以到crossin.me上下载,最下面的“阅读原文”是传送门。
面向零基础初学者的编程课
每天5分钟,轻松学编程
回复『 p 』查看python课程
回复『 g 』查看pygame课程
回复『 t 』查看习题