Sprite kit 在spritekit中使SKLabelNode显示在所有其他精灵的上方
嗨,我是编程新手,我遇到了一个小问题。我正在创建一个带有分数标签的简单游戏。但是,每当向下滚动的障碍物通过时,分数标签就会被覆盖。我希望分数标签不被障碍物覆盖。有没有办法改变spritekit中的精灵层次结构?谢谢您可以更改标签节点的zPosition属性,将其设置为100,它将高于所有其他节点(默认值为0.0):Sprite kit 在spritekit中使SKLabelNode显示在所有其他精灵的上方,sprite-kit,hierarchy,skspritenode,sklabelnode,Sprite Kit,Hierarchy,Skspritenode,Sklabelnode,嗨,我是编程新手,我遇到了一个小问题。我正在创建一个带有分数标签的简单游戏。但是,每当向下滚动的障碍物通过时,分数标签就会被覆盖。我希望分数标签不被障碍物覆盖。有没有办法改变spritekit中的精灵层次结构?谢谢您可以更改标签节点的zPosition属性,将其设置为100,它将高于所有其他节点(默认值为0.0): 您可以更改标签节点的zPosition属性,将其设置为100,它将位于所有其他节点之上(默认值为0.0): 节点按添加到场景(或父节点)的顺序绘制。通过设置节点的zPosition属
您可以更改标签节点的zPosition属性,将其设置为100,它将位于所有其他节点之上(默认值为0.0):
节点按添加到场景(或父节点)的顺序绘制。通过设置节点的zPosition属性,可以更改节点的绘制顺序 从苹果的文档中 …z位置是节点相对于其父节点的高度,与节点的位置类似 属性表示其相对于父对象的x和y位置 位置。因此,可以使用z位置将节点放置在 家长的立场 当您考虑z位置时,下面是节点树的结构 呈现:
- 计算每个节点的全局z位置
- 节点按从最小z值到最大z值的顺序绘制
- 如果两个节点共享相同的z值,则先渲染祖先节点,然后按子级顺序渲染同级节点
节点按添加到场景(或父节点)的顺序绘制。通过设置节点的zPosition属性,可以更改节点的绘制顺序 从苹果的文档中 …z位置是节点相对于其父节点的高度,与节点的位置类似 属性表示其相对于父对象的x和y位置 位置。因此,可以使用z位置将节点放置在 家长的立场 当您考虑z位置时,下面是节点树的结构 呈现:
- 计算每个节点的全局z位置
- 节点按从最小z值到最大z值的顺序绘制
- 如果两个节点共享相同的z值,则先渲染祖先节点,然后按子级顺序渲染同级节点
我建议为屏幕上应该固定的静态内容创建一个节点(比如游戏HUD)。然后将此节点的位置设置为高于游戏节点(所有游戏对象都放置和操作在该节点) 这也使得在不移动分数标签或任何其他固定hud元素的情况下,更容易实现摄像头或移动游戏节点(如果需要) 所以你会有这样的东西:
SKNode *hudNode = [SKNode node];
hudNode.zPosition = 1000;
[hudNode addChild:scoreLabel];
SKNode *gamePlayNode = [SKNode node];
gamePlayNode.zPosition = 0; // Not mandatory as it defaults to 0 but I put this here for clarification
[self addChild:hudNode]; // self is your scene instance
[self addChild:gamePlayNode];
我建议为屏幕上应该固定的静态内容创建一个节点(比如游戏HUD)。然后将此节点的位置设置为高于游戏节点(所有游戏对象都放置和操作在该节点) 这也使得在不移动分数标签或任何其他固定hud元素的情况下,更容易实现摄像头或移动游戏节点(如果需要) 所以你会有这样的东西:
SKNode *hudNode = [SKNode node];
hudNode.zPosition = 1000;
[hudNode addChild:scoreLabel];
SKNode *gamePlayNode = [SKNode node];
gamePlayNode.zPosition = 0; // Not mandatory as it defaults to 0 but I put this here for clarification
[self addChild:hudNode]; // self is your scene instance
[self addChild:gamePlayNode];
任何任意的高值都可以。Thx您绝对正确。如果他没有为其他节点设置zPosition的任何值,即使将其设置为0.1也可以。任何任意高的值都可以。Thx您完全正确。如果他没有为其他节点设置zPosition的任何值,即使将其设置为0.1也会起作用。