【问题标题】:SpriteKit - The child of my node does not appear to be changing its zPosition attributeSpriteKit - 我的节点的子节点似乎没有改变它的 zPosition 属性
【发布时间】:2015-04-15 08:17:46
【问题描述】:

我的问题是,我有一个“2.5D”游戏,其中相互接触的角色需要动态改变他们的 zPosition。我正在使用物理实体来实现这一点。

它对角色工作正常,但是,即使我正在记录 zPosition 属性的正确更改,他们所持有的盾牌(一个子对象)也没有效仿。

if (((firstNode.categoryBitMask & dudeCategory) != 0) && ((secondNode.categoryBitMask & shieldGuyCategory) !=0))
{
    if ((firstNode.node.position.y < secondNode.node.parent.position.y))
    {
        [secondNode.node.parent enumerateChildNodesWithName:@"shieldNode" usingBlock:^(SKNode *node, BOOL *stop){
            NSLog(@"Ooh I Say! Shield zPos = %f", node.zPosition);

            SKAction *zPos = [SKAction runBlock:^{
                node.zPosition = node.zPosition -200;

                NSLog(@"And now, %@ zPos = %f", node.name, node.zPosition);
                NSLog(@"But static NPC zPos = %f", firstNode.node.zPosition);
                NSLog(@"And finally, Shield-holder Guy zPos = %f", secondNode.node.parent.zPosition);
            }];

            [node runAction:zPos];
        }];

        secondNode.node.parent.zPosition = secondNode.node.parent.zPosition -200;
    }
}

停下来!

【问题讨论】:

  • 为什么不直接设置zPosition而不是使用SKAction runBlock:
  • 它是直接在我的原始代码中设置的,我认为可能需要 SKAction 来显式更改它,结果它没有。
  • 太棒了。已添加答案。
  • 对不起,我的意思是,它最初不适用于:node.zPosition = node.zPosition -200;,根本没有SKAction runBlock:。更奇怪的是 NSLog 报告了正确的更改,但游戏没有显示它。
  • 我可能会调整代码,以便所有 4 个 NSLog 也反映节点名称,只是为了确定。

标签: objective-c sprite-kit collision-detection skspritenode skphysicsbody


【解决方案1】:

不要使用SKAction runBlock:设置zPosition,而是直接设置。

[secondNode.node.parent enumerateChildNodesWithName:@"shieldNode" usingBlock:^(SKNode *node, BOOL *stop){
        node.zPosition -= 200;
    }];

【讨论】:

    【解决方案2】:

    所以,事实证明我在其方法中设置了屏蔽的 zPosition。当父级更改 zPosition 时删除它会恢复正常行为,明确声明它似乎会覆盖嵌套行为。

    【讨论】:

      猜你喜欢
      • 2011-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-28
      相关资源
      最近更新 更多