(NO.00001)iOS游戏SpeedBoy Lite成形记(九)
2015-10-20 18:42
393 查看
我们回到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方法中,而不是反过来.
可是这又产生一个小问题.写代码就是这样,完成了一点新的的东西,原来的又工作不正常了.没关系,这也是编程乐趣所在.下篇我们再叙 ;)
相关文章推荐
- (NO.00001)iOS游戏SpeedBoy Lite成形记(八)
- (NO.00001)iOS游戏SpeedBoy Lite成形记(八)
- (NO.00001)iOS游戏SpeedBoy Lite成形记(八)
- CCNA学习笔记3---备份和升级IOS
- IOS将字符串转换为日期时间格式
- ios 使用SourceTree,KDiff3进行代码的冲突解决步骤
- ios越狱插件Flex2 乐视会员
- iOS根据坐标数据点所在的坐标区域来动态显示到可视范围
- iOS-TableView拖动Cell更换次序
- (NO.00001)iOS游戏SpeedBoy Lite成形记(七)
- (NO.00001)iOS游戏SpeedBoy Lite成形记(七)
- (NO.00001)iOS游戏SpeedBoy Lite成形记(七)
- iOS无处不在详解iOS集成第三方登录(SSO授权登录无需密码)
- 工作备忘-ios中oc枚举值与字符串之间的转换
- iOS百度地图后台持续定位(一)
- iOS内购详细教程 从0到1
- web页面调用IOS的事件
- 解决真机调试,运行Xcode总让输入用户名和密码
- iOS 链式编程思想
- ios学习 - 控件学习