iOS 7 Sprite Kit 更改 SKAction 中的 zPosition
Posted
技术标签:
【中文标题】iOS 7 Sprite Kit 更改 SKAction 中的 zPosition【英文标题】:iOS 7 Sprite Kit change zPosition in SKAction 【发布时间】:2014-02-04 21:57:08 【问题描述】:我有两个不同的SKSpriteNodes
。第一个是静止的,第二个我想围绕第一个节点移动。我的第二个节点从屏幕外飞入,zPosition
为 11(第一个节点的 zPosition
为 10)。当第二个节点飞到屏幕的另一端时,我让节点翻转并飞回。这时候我想把zPosition
改成9。
witch.position = CGPointMake(self.size.width + 200, self.size.height / 2 + 50);
witch.zPosition = 11;
[self addChild:witch];
SKAction *moveLeft = [SKAction moveToX:-200 duration:8];
SKAction *moveRight = [SKAction moveToX:self.size.width + 200 duration:8];
SKAction *moveDown = [SKAction moveToY:secondNode.position.y - 50 duration:0.3];
SKAction *moveUp = [SKAction moveToY:secondNode.position.y + 50 duration:0.3];
SKAction *flipRight = [SKAction scaleXTo:-1 duration:0];
SKAction *flipLeft = [SKAction scaleXTo:1 duration:0];
[secondNode runAction:
[SKAction repeatActionForever:
[SKAction sequence:
@[moveLeft, moveDown, flipRight, CHANGEZPOSITIONHERE, moveRight, moveUp, flipLeft, CHANGEZPOSITIONHERE]]]];
我将如何更改SKAction
中间的zPosition
?
提前感谢您的所有建议和帮助。
【问题讨论】:
使用 runBlock: 动作 当然,谢谢。如果你回答这个问题,我会接受。 【参考方案1】:由于 LearnCocos2D 的评论,找到了这个答案。
添加一个 runBlock:action 我能够改变 zPosition。最终代码为:
[secondNode runAction:
[SKAction repeatActionForever:
[SKAction sequence:
@[moveLeft, moveDown, flipRight,
[SKAction runBlock:(dispatch_block_t)^()
secondNode.zPosition = 9;
], moveRight, moveUp, flipLeft,
[SKAction runBlock:(dispatch_block_t)^()
secondNode.zPosition = 11;
]]]]];
【讨论】:
以上是关于iOS 7 Sprite Kit 更改 SKAction 中的 zPosition的主要内容,如果未能解决你的问题,请参考以下文章
iOS7 Sprite Kit如何在更改锚点时计算节点位置?
在 removeFromParent 上 Sprite Kit iOS 7.1 崩溃