(NO.00001)iOS游戏SpeedBoy Lite成形记(九)
2015-10-20 18:42
344 查看
我们回到matchRun方法中去尝试第一次修改,部分代码如下:
改动并不大.主要是将移动动作放到了Speed动作中去,然后在seq中执行speed动作而已.
信心满满的编译通过,然后尝试运行…
神马,竟然出错了!提示speed动作找不到selector duration!
找到CCActionSpeed的API,发现最下方有如下一句:
Note: CCActionSpeed can not be added to a CCActionSequence because it does not inherit from CCActionFiniteTime. It can however be used to control the speed of an entire CCActionSequence.
原来ActionSpeed不能被添加到ActionSequence中去,因为其并不继承于ActionFiniteTime类.其根本原因我猜测是该类中没有duration方法,而Seq中需要该方法计算其中所有子方法经历的时间.
但是我们必须要顺序(seq)中的回调block,否则无法在选手到达终点时完成动作.
接下来是我的第二次尝试修改:
编译运行,now it’s work!关键是将seq放在了speed方法中,而不是反过来.
可是这又产生一个小问题.写代码就是这样,完成了一点新的的东西,原来的又工作不正常了.没关系,这也是编程乐趣所在.下篇我们再叙 ;)
CCActionMoveBy *moveBy = [CCActionMoveBy actionWithDuration:duration position:ccp(0.9f, 0)]; CCActionJumpBy *jump = [CCActionJumpBy actionWithDuration:duration position:ccp(0, 0) height:0.05 jumps:20]; //略去回调block中的方法... player.speed = [CCActionSpeed actionWithAction:moveBy speed:1.0f]; CCActionSequence *seq = [CCActionSequence actionWithArray:@[player.speed,blk]]; [player runAction:seq]; [player runAction:jump];
改动并不大.主要是将移动动作放到了Speed动作中去,然后在seq中执行speed动作而已.
信心满满的编译通过,然后尝试运行…
神马,竟然出错了!提示speed动作找不到selector duration!
找到CCActionSpeed的API,发现最下方有如下一句:
Note: CCActionSpeed can not be added to a CCActionSequence because it does not inherit from CCActionFiniteTime. It can however be used to control the speed of an entire CCActionSequence.
原来ActionSpeed不能被添加到ActionSequence中去,因为其并不继承于ActionFiniteTime类.其根本原因我猜测是该类中没有duration方法,而Seq中需要该方法计算其中所有子方法经历的时间.
但是我们必须要顺序(seq)中的回调block,否则无法在选手到达终点时完成动作.
接下来是我的第二次尝试修改:
CCActionMoveBy *moveBy = [CCActionMoveBy actionWithDuration:duration position:ccp(0.9f, 0)]; CCActionJumpBy *jump = [CCActionJumpBy actionWithDuration:duration position:ccp(0, 0) height:0.05 jumps:20]; //略去回调block中的方法... CCActionSequence *seq = [CCActionSequence actionWithArray:@[moveBy,blk]]; player.speed = [CCActionSpeed actionWithAction:seq speed:1.0]; [player runAction:player.speed]; [player runAction:jump]; [player startMatch];
编译运行,now it’s work!关键是将seq放在了speed方法中,而不是反过来.
可是这又产生一个小问题.写代码就是这样,完成了一点新的的东西,原来的又工作不正常了.没关系,这也是编程乐趣所在.下篇我们再叙 ;)
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 我是运营,我没有假期
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- 每个 Linux 游戏玩家都绝不想要的恼人体验
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- 在 Fedora 上使用 Steam play 和 Proton 来玩 Windows 游戏
- Steam 让我们在 Linux 上玩 Windows 的游戏更加容易
- 如何使用 Steam Play 在 Linux 上玩仅限 Windows 的游戏
- 新一代iPad适配应用之游戏篇
- VB实现的《QQ美女找茬游戏》作弊器实例
- C#实现洗牌游戏实例
- C#实现的算24点游戏算法实例分析
- C#实现简单的井字游戏实例
- C++编写简单的打靶游戏
- C++实现基于控制台界面的吃豆子游戏
- 纯javascript实现的小游戏《Flappy Pig》实例