大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处.
如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;)
上一篇中我们实现了3球道具,但是好像还是不过瘾,如果能让反弹棒更具”攻击性”就好了,那么本篇中我们就让它发射导弹直接击毁砖块吧!
导弹道具的功能
我们要实现如下功能:
- 反弹棒接触到导弹道具星后”长出”一根炮管
- 该炮管定时向前方发射导弹
- 导弹碰到砖块则将其击毁,否则飞出屏幕自动销毁
- 一定时间后炮管消失,导弹发射也随之停止
让棒棒上长出一根炮管有很多种方法,因为反弹棒有不同的形态(长的,短的和普通的),所以要考虑到不同长度下的炮管行为.
我们不管什么长度的反弹棒都让其能发射炮弹.这样的话就得建立3根带炮管的新反弹棒,相当麻烦.不如不管当前是什么长度的反弹棒,只在其中间位置创建炮管就好了.
所以我们只需要创建2种新素材:炮管和导弹.
创建素材
使用Ai创建一根类似炮管的东东,然后导出为png图片,如下:
接着是制作导弹,因为我们想导弹有一个飞行的动画,所以需要制作至少2张图片,类似以下图片:
一张尾巴带有火焰,这样两张图片形成导弹飞行的动画.
将3张新建的图片拖入SpriteBuilder中:
在SpriteBuilder中创建导弹精灵
因为炮管是即时创建的,而且没有变化,所以我们直接在代码中创建.在SpriteBuilder中我们只需要创建好导弹精灵,并且制作飞行的动画.
在SpriteBuilder中新建Bullet.ccb文件,类型为Sprite.用之前创作的2张图片在Timeline中形成动画效果:
至于怎么制作动画,前面几个系列的博文讲的很清楚了,如果不清楚的话,可以看看之前的博文,或是直接问我.
接下来开启其物理对象,物理边界不需要非常吻合,只要保证头部和导弹头部吻合即可:
在这里值得注意的的是,我们不需要给导弹设置一个自定义的类,因为只是仅仅把它当做一个精灵来用,没有其他的扩展,所以保持这样就挺好 ;)
下一篇中,我们就来实现导弹道具对应的代码,本来想放在一篇的,但发现太长了.
所以下篇见吧 ;)