【问题标题】:Different zPositions relative to different Nodes相对于不同节点的不同zPosition
【发布时间】:2017-10-31 01:41:14
【问题描述】:

假设我有节点 A、B 和 C。如何将节点 A 设置为比节点 B 更高的 zPosition,将节点 B 设置为比 C 更高的 zPosition,但将节点 A 设置为比节点 C 更低的 zPosition . 基本上,只在节点B上方显示节点A,在节点C后面隐藏它。

【问题讨论】:

    标签: swift sprite-kit


    【解决方案1】:

    我认为这是不可能的。将节点A显示在B之上,将A隐藏在C之后意味着你需要C在A和B之上。但是你需要B高于C,这意味着C不能在B之上。尝试使用碎片桌子上的纸,你会发现你不能同时满足这两个目标......

    【讨论】:

    • 你忘了,这是我们正在处理的计算机,而不是现实生活。只需要不断改变zPosition
    • @BCode 不确定这是否适合您的需要,但您可以考虑向 C 添加一个子节点。给该子节点一个 z 位置,将隐藏 A。然后给节点 C 一个位置,它将是在 B 之下,(但这样子节点仍然隐藏 A)。因此,C 的一部分将隐藏 A,而 C 的一部分在 B 之下。如果您尝试这样做,请记住节点的 z 位置是相对于其父节点的。所以一个节点的绝对全局z位置是它的z位置+它的父节点的z位置+它的父节点的父节点的z位置,等等。
    【解决方案2】:

    我会在没有碰撞检测的节点之间设置接触检测,以便它们能够重叠并且当它们重叠时您会收到通知。

    当它们开始重叠时,(即为您感兴趣的节点调用didBegin)相应地调整每个节点的z-Position。实施一些规则,这样如果所有 3 条都重叠,您就会得到合理的结果。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-03
      • 2018-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-28
      • 1970-01-01
      相关资源
      最近更新 更多