【问题标题】:iOS 7 Sprite Kit change zPosition in SKActioniOS 7 Sprite Kit 更改 SKAction 中的 zPosition
【发布时间】: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: 动作
  • 当然,谢谢。如果你回答这个问题,我会接受。

标签: ios objective-c ios7 sprite-kit


【解决方案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;
          }]]]]];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-15
    • 2014-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多