SpriteKit中反转Action需要注意的问题
2016-04-19 20:35
381 查看
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处.
如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;)
我们知道在SpriteKit中同样有Cocos2D中类似的Action的概念,某些Action也是可以反转的.
你可能要问我怎么知道哪些Action是可反转的,哪些不能?这个好办,一般你可以通过看Action的类型初步的判断,比如哪些MoveByXXX的动作都是可以反转的,因为其中动作的变化是相对的!而那些MoveToXXX的动作自然是不可以反转的.
如果拿不准主意的,你尽可以查看对应Action的Api说明,里面说的很清楚!
那么如果我们反转一个不能反转的Action会发生神马?App会可耻的崩溃掉吗!?答案是:NO!在这种情况下会返回原来相同的Action!这点要记住!
还有,对应序列Action的反转,其实是序列中每个Action的反转最后序列数组再一次反转,有码为证:
如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;)
我们知道在SpriteKit中同样有Cocos2D中类似的Action的概念,某些Action也是可以反转的.
你可能要问我怎么知道哪些Action是可反转的,哪些不能?这个好办,一般你可以通过看Action的类型初步的判断,比如哪些MoveByXXX的动作都是可以反转的,因为其中动作的变化是相对的!而那些MoveToXXX的动作自然是不可以反转的.
如果拿不准主意的,你尽可以查看对应Action的Api说明,里面说的很清楚!
那么如果我们反转一个不能反转的Action会发生神马?App会可耻的崩溃掉吗!?答案是:NO!在这种情况下会返回原来相同的Action!这点要记住!
还有,对应序列Action的反转,其实是序列中每个Action的反转最后序列数组再一次反转,有码为证:
let actionMidMove = SKAction.moveByX(-size.width/2-enemy.size.width/2, y: -CGRectGetHeight(playableRect)/2 + enemy.size.height/2, duration: 1.0) let actionMove = SKAction.moveByX(-size.width/2-enemy.size.width/2, y: CGRectGetHeight(playableRect)/2 - enemy.size.height/2, duration: 1.0) let actionMoveY = SKAction.moveByX(0, y: 50, duration: 1.0) //let reverseMid = actionMidMove.reversedAction() //let reverseMove = actionMove.reversedAction() let wait = SKAction.waitForDuration(3.0) let blk = SKAction.runBlock() { print("Reached bottom 1") } let blk2 = SKAction.runBlock() { print("Reached bottom 2") } let halfSeq = SKAction.sequence([actionMidMove,actionMoveY,blk,wait,blk2,actionMove]) //let seq = SKAction.sequence([actionMidMove,blk,wait,actionMove,reverseMove,blk,wait,reverseMid]) let seq = SKAction.sequence([halfSeq,halfSeq.reversedAction()]) enemy.runAction(seq)
相关文章推荐
- zTree实现地市县三级级联Service接口
- hdu 5108 Alexandra and Prime Numbers
- leetcode----最长有效括号字串
- 【数据结构】二叉树的实现(如:默认成员函数、(叶子)节点数、深度、四种遍历)
- 写一个类的构造函数、复制构造函数、析构函数、赋值函数
- swift URL生成
- 正则表达式基础知识整理
- Android Builder模式
- nyoj1058 部分和问题
- 剪切坐标轴
- linux sysstat 安装使用
- 深入研究String StringBuffer StringBuilder 的拼接字符串
- Chilkat----开源站点之VS2010 CKMailMan一个很好的邮件发送开源开发包
- 《校园封神榜》个人工作总结——第二天
- 1000!的结果中如果用十进制表示,有多少位
- eclipse中的android项目转入android studio
- Oj平台-指针n个数逆序
- 《啊哈算法》第一章 排序
- jQuery学习(二)
- xml转换之