前两讲做了保卫萝卜的地图,妖怪轨迹。还放了一个萝卜炮塔,今天我们看看如何增加一个不同种类的炮塔,导弹炮塔,以及如何增加一波新的妖怪。
今天的程序要点有这几个:
1:新的一波妖怪,在检测到第一波妖怪已经被全部消灭完之后,出现一波新的妖怪,妖怪的行走速度加快。
2:导弹炮塔,导弹比萝卜炮厉害,射程可以覆盖屏幕的全部范围,而且可以连续消灭妖怪。
我们看看程序部分有哪些变化。
妖怪的新造型:
首先在妖怪的角色上创造了一个新的造型,思路也很简单,每一波妖怪出现的时候,只要切换妖怪造型就好了,因为妖怪都是走一个路线,被子弹击中的反应也一样,所以没有必要创建新的角色。这里CC哥只增加了一个妖怪造型,大家如果感兴趣的话可以多增加几个妖怪造型。
妖怪程序部分: 增加了一些代码,我把不同的地方单独跟大家讲一下。 第一是增加了两个变量,一个是妖怪的速度,也就是通过这个变量来设置每一波妖怪的移动速度。另一个是“妖怪出完“这个变量,通过这个变量来判断,这一波的妖怪有没有出完,这个变量的用处后面的程序会用到。(有时候妖怪刚一出现,就被消灭了,那在这个时间点上屏幕上虽然没有妖怪,但是实际上这一波妖怪并没有出完,所以我们需要一个变量来通知其他的角色,这一波妖怪并没有出完,还会继续出现。)所以大家注意看到每次一波妖怪出现之前,先会把这个变量设定为0,等这一波妖怪全部出现之后,再把这个变量设定为1。 因为角色众多,那么角色之间的动作协调就会需要消息来完成,所以在新的程序里,CC哥增加了很多消息,来协调各个角色的步调,不能乱套。在这里为了让大家更容易理解程序,CC哥把下一波的妖怪出现的代码单独分了出来。方便大家理解了。如果有很多妖怪的造型,每一波妖怪都不一样,大家完全可以用一个变量来对应妖怪的编号,把代码整合在一起。这个就由大家自己去完成了。 在妖怪移动的过程中,有两点变换,碰到子弹的情况多了一种,除了子弹还有导弹。另一个是移动速度。为了保证妖怪沿着轨道移动,每次都是移动35步,这点CC哥设计的不好,因为35的因数就只有1、5、7。那这个速度可调整的空间就不大,CC哥刚开始设计程序的时候没想到这一步。如果砖块的尺寸设计成40,那么因数就多了,有1、2、4、5、8、10、20等,那妖怪的速度就有很多设置的空间,这个大家自己可以摸索一下。 其他角色的代码没有什么变化,CC哥只是做了些小优化,就没必要讲了。我们专门看一下新角色导弹的代码: 导弹跟萝卜炮塔不一样,因为导弹的子弹跟导弹本身的造型是一样的,所以不需要单独做导弹子弹的角色了。 这部分就是每两秒钟发射一个导弹,也就是每两秒钟克隆自已一次。如果妖怪消灭光了。(两个判断条件,一个是队列里的妖怪要全部消灭完,第二个条件是检查妖怪出完这个变量来判断这一波妖怪已经确定出完了。)那么就发布消息,启动下一波妖怪。编程其实非常锻炼思维的严谨性,如果没有妖怪出完的变量检测,那么妖怪在还没出完的情况下,屏幕上的妖怪已经被炮塔清空了。妖怪队列里面这个时间点是没有妖怪的。那么就会被误启动下一波妖怪。这时候你的程序就会乱掉。