(NO.00004)iOS实现打砖块游戏(十五):导弹发射道具的实现(上)
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处.
如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;)
上一篇中我们实现了3球道具,但是好像还是不过瘾,如果能让反弹棒更具”攻击性”就好了,那么本篇中我们就让它发射导弹直接击毁砖块吧!
导弹道具的功能
我们要实现如下功能:
- 反弹棒接触到导弹道具星后”长出”一根炮管
- 该炮管定时向前方发射导弹
- 导弹碰到砖块则将其击毁,否则飞出屏幕自动销毁
- 一定时间后炮管消失,导弹发射也随之停止
让棒棒上长出一根炮管有很多种方法,因为反弹棒有不同的形态(长的,短的和普通的),所以要考虑到不同长度下的炮管行为.
我们不管什么长度的反弹棒都让其能发射炮弹.这样的话就得建立3根带炮管的新反弹棒,相当麻烦.不如不管当前是什么长度的反弹棒,只在其中间位置创建炮管就好了.
所以我们只需要创建2种新素材:炮管和导弹.
创建素材
使用Ai创建一根类似炮管的东东,然后导出为png图片,如下:
接着是制作导弹,因为我们想导弹有一个飞行的动画,所以需要制作至少2张图片,类似以下图片:
一张尾巴带有火焰,这样两张图片形成导弹飞行的动画.
将3张新建的图片拖入SpriteBuilder中:
在SpriteBuilder中创建导弹精灵
因为炮管是即时创建的,而且没有变化,所以我们直接在代码中创建.在SpriteBuilder中我们只需要创建好导弹精灵,并且制作飞行的动画.
在SpriteBuilder中新建Bullet.ccb文件,类型为Sprite.用之前创作的2张图片在Timeline中形成动画效果:
至于怎么制作动画,前面几个系列的博文讲的很清楚了,如果不清楚的话,可以看看之前的博文,或是直接问我.
接下来开启其物理对象,物理边界不需要非常吻合,只要保证头部和导弹头部吻合即可:
在这里值得注意的的是,我们不需要给导弹设置一个自定义的类,因为只是仅仅把它当做一个精灵来用,没有其他的扩展,所以保持这样就挺好 ;)
下一篇中,我们就来实现导弹道具对应的代码,本来想放在一篇的,但发现太长了.
所以下篇见吧 ;)
(NO.00004)iOS实现打砖块游戏(十五):导弹发射道具的实现(上)的更多相关文章
- (NO.00004)iOS实现打砖块游戏(十六):导弹发射道具的实现(下)
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 上一篇我们完成了导弹道具相关的道具制作,本篇中我们来完成其实现 ...
- (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 通用的星星类已经完成了,下面我们来实现具体的变长和缩短道具. 变 ...
- (NO.00004)iOS实现打砖块游戏(十四):3球道具的实现
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 反弹棒变化道具实现前面已经介绍过了,我们下面可以在小球上做些文章 ...
- (NO.00004)iOS实现打砖块游戏(十):砖块!更多的砖块!
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 到目前为止游戏基本可玩,但是砖块数量是不变的,等玩家打光所有的砖 ...
- webug第十五关:什么?图片上传不了?
第十五关:什么?图片上传不了? 直接上传php一句话失败,将content type改为图片 成功
- (NO.00004)iOS实现打砖块游戏(五):游戏场景类
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 创建游戏场景类头文件 在Xcode创建新GameScene类,继 ...
- 从零开始学ios开发(十五):Navigation Controllers and Table Views(中)
这篇内容我们继续上一篇的例子接着做下去,为其再添加3个table view的例子,有了之前的基础,学习下面的例子会变得很简单,很多东西都是举一反三,稍稍有些不同的内容,好了,闲话少说,开始这次的学习. ...
- (NO.00004)iOS实现打砖块游戏(六):反弹棒类
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 打砖块游戏另一个要素是反弹棒,我们在这篇类来实现反弹棒类. 创建 ...
- (NO.00004)iOS实现打砖块游戏(一):素材的制作
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 本系列来实现一个儿时就很喜欢的打砖块游戏,我记得以前红白机上有一 ...
随机推荐
- Python virtualenv 使用总结篇
一.virtualenv的安装 1.使用pip全局安装virtualenv,建议使用pip 1.3或更高版本,在1.3之前,pip没有通过SSL从PYPI下载. $ [sudo] pip instal ...
- cocos2d-x-3.x 学习总结(一)
这周学习了<cocos2d-x 3.x 游戏开发之旅>的第三章,做如下总结: 1.关于创建标签对象 书中是 Label* label = Label::create(); 可是总是提示出错 ...
- scanf———while(scanf ("%lu",&num) = =1)什么意思
scanf的返回值由后面的参数决定 scanf("%d%d", &a, &b); 如果a和b都被成功读入,那么scanf的返回值就是2 如果只有a被成功读入,返回值 ...
- python2.7入门---简介&基础语法
Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言,具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构.基于上述原因, ...
- debug的一些按钮意义
F9 resume programe 恢复程序 Alt+F10 show execution point 显示执行断点 F8 Step Over 相当于eclipse的f6 跳到下一步 F7 Step ...
- http协议无状态中的 "状态" 到底指的是什么?!
引子: 最近在好好了解http,发现对介绍http的第一句话[http协议是无状态的,无连接的]就无法理解了:无状态的[状态]到底指的是什么?! 找了很多资料不仅没有发现有一针见血正面回答这个问题的, ...
- 日常实用css布局技巧汇总
1.单行完整显示,多行省略显示. .box { width: 100px; //必要 display: -webkit-box; //必要 font-size: 14px; line-heig ...
- python笔记三(list、tuple)
一.list list的增删改查 #增, classmates.append("nadech") #在末尾追加一个元素 classmates.insert(1,"agui ...
- ACM FatMouse' Trade
FatMouse prepared M pounds of cat food, ready to trade with the cats guarding the warehouse containi ...
- Node.js 工具模块
在 Node.js 模块库中有很多好用的模块.接下来我们为大家介绍几种常用模块的使用: 序号 模块名 & 描述 1 OS 模块 提供基本的系统操作函数. 2 Path 模块提供了处理和转换文件 ...