SpriteKit中反转Action需要注意的问题

SpriteKit中反转Action需要注意的问题,第1张

概述大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 我们知道在SpriteKit中同样有Cocos2D中类似的Action的概念,某些Action也是可以反转的. 你可能要问我怎么知道哪些Action是可反转的,哪些不能?这个好办,一般你可以通过看Action的类型初步的判断,比如哪些MoveByXXX的动作都是

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处.
如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! 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,actionMove,reverseMove,reverseMID])        let seq = SKAction.sequence([halfSeq,halfSeq.reversedAction()])        enemy.runAction(seq)
总结

以上是内存溢出为你收集整理的SpriteKit中反转Action需要注意的问题全部内容,希望文章能够帮你解决SpriteKit中反转Action需要注意的问题所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1079531.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存