问题标签 [zposition]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
118 浏览

enums - spriteKit 中的枚举和 zPosition 问题

我在使用 enum 时遇到了一些问题,用于在 sprite Kit 中建立 zPositiion。这是枚举:

然后我将我的场景划分为不同的层以包含额外的效果。我将 worldNode 添加为 spriteKit 基本节点,然后他们的子节点如下所示:

如您所见,greenCircle 是 backGroundMountainOver 的子节点,而 foreGroundMountainRight 是 worldNode 的子节点。我需要这个来实现我之前提到的效果。

问题是虽然 foreGroundMountainRight 的 zPosition 比 greenCircle 的 zPosition 大,但最后一个出现在第一个之上。解决问题的唯一方法是更改​​:

我不明白这是怎么回事。

0 投票
2 回答
57 浏览

sprite-kit - SKSpriteNodeChild 在错误的 zPosition

我将两个 SKSpriteNodes 作为子节点添加到另一个 SKSpriteNode。代码如下所示:

当我将 parentNode 添加到我的场景中时,z 平面中精灵的顺序从后到前是

  • 父节点
  • 孩子1
  • 孩子2

有时,预期的

  • 孩子1
  • 父节点
  • 孩子2

当子节点低于父节点时,zPosition 属性是否会被否决?有没有人遇到过这样的错误或知道修复?

在 GameViewController 中,skView.ignoresSiblingOrder = true 当我将其设置为 时false,我每次都会得到第一个行为(parentNode、child1、child2)。

0 投票
1 回答
696 浏览

ios - How to move emitter node to front?

Background's zPosition is 1 and emitter node's is 2. Still background is on front. I even tried higher numbers, but it won't help.

Code

0 投票
0 回答
76 浏览

ios - 如何在 iOS 中可视化 zPosition

我和我的团队正在开发一款基于 SpriteKit 的中等复杂度的 iOS 游戏。游戏的设计有很多层和节点,节点的zPositioning变得草率。我同意承担的一项任务是修改我们的 zPosition 策略:使用常量而不是幻数,为应用程序制定一个整体的 zPosition 方案等,但首先我想分析一下我们现在所处的位置。所以这是我的问题:

我隐约记得看过一个 WWDC 视频(可能是其他教程),其中有人展示了使用 Instruments 的某些方面(或其他工具)来展示应用程序的 3D 渲染,从同构的角度看,基于 zPosition应用程序中的 SKNodes(或 UIKit 元素?)。

这里有人知道这是什么工具吗?如果没有,在基于 SpriteKit 的应用程序中可视化 zPositions 的当前状态的最佳方法是什么?谢谢!

0 投票
2 回答
1192 浏览

swift - SpriteKit - 为什么没有检测到 SKNode

我查看了无数参考资料,试图理解为什么我的场景没有像我预期的那样运行,例如this

这是我非常简单的 SKScene(2 个子节点):

  • 场景有一个 SpriteNode(作为背景图像覆盖整个场景)。这有一个 zPosition = 0。
  • 场景有一个第二个节点 (SKNode),它本身还有另一个子节点(最多 2 个级别)。这有一个 zPosiiton - 2。
  • 所有节点都有 .userInteractionEnabled = false

问题:

当我点击任何地方时,我看到的是第一个孩子(SpriteNode)被触摸了。第二个孩子(SKNode)永远不会被触摸检测到。

请注意,节点的 z 顺序正在按照我的预期呈现。触摸检测似乎不起作用。

我的 touchesBegan 方法的片段:

0 投票
0 回答
38 浏览

sprite-kit - 没有 zPosition (0) 的孩子的相对顺序是什么?

我阅读了 Sprite 编程指南,他们描述了孩子的 zPosition 如何基于它的父母。

例如,如果父母有 100 个 zPosition,而孩子有 1 个 zPosition。孩子的相对(到场景)zPosition 为 101。假设 ignoreSibling order 设置为 true,以提高效率。

使用这个逻辑:如果孩子的 zPosition 或 zPosition 不为零,那么它的相对 zPosition 是否与它的父母相同?

例如:如果 parent 的 zPosition 为 100,child 的 zPosition 为 0。child 的相对 zPosition 为 100。

如果这是真的,这意味着我们应该始终将孩子的 zPosition 设置为 1,以避免父渲染在孩子之上的可能性。

我读过类似的问题,但他们似乎忽略了孩子没有 zPosition 的情况。

0 投票
1 回答
157 浏览

swift - SplitViewController 按钮重叠

我有一个带有 MasterViewController 和 DetailViewController 的 UISplitViewController。

在我的 MasterViewController 中,我添加了一个分配了目标操作的按钮,并且效果很好......但是:

我希望我的按钮位于 MasterViewController 和 DetailViewController 之间的边界上。但是按钮的一半只是消失了..我已经在层等中尝试了zPosition..但它没有用。

有人可以帮我吗?

0 投票
1 回答
322 浏览

swift - 改变瓷砖的zPosition

我想更改我的瓦片地图中某些瓦片的 zPosition。我使用以下函数来实现这一点:

当我使用此功能时,打印语句显示 5 次“100”。这是正确的,因为我想使用 userData 名称“Z”更改 5 个图块的 zPosition,我将其用作 tileInfo 参数。玩家精灵的 ZPosition 为 10。但如果我现在和玩家一起走过 zPosition 为 100 的图块,玩家仍然在图块上方。我希望他在瓷砖后面。我在这里做错了什么?

0 投票
1 回答
286 浏览

swift - 当多个精灵相互移动时,如何处理它们的 zPosition?

我是 Swift 编程新手。我正在尝试创建一个游戏,其中有一堆在屏幕上随机移动的精灵。假设我有一堆简单的 2D 图像精灵。随着精灵向上移动(因为在 y 位置增加),我希望它看起来更向后移动到其他精灵后面,所以我希望 zPosition 与其他精灵相比减少。游戏如何处理这个问题?如果我有 100 个在屏幕上随机移动的精灵怎么办?我什至不知道如何处理这个问题,所以任何帮助都将不胜感激。

第二个更高级的概念。所以假设每个精灵都有多层子精灵,比如手臂、腿、衣服、武器等。(我的精灵是高度可定制的。)然后每个精灵随机走动,当它们移动到其他精灵后面时,它们需要出现在正确的 zPosition 中精灵。我如何确保所有的手臂、腿、衣服和其他精灵层正确地出现在每个其他精灵的前面或后面?如果我有一个具有 20 层子精灵的精灵,并且它需要在具有 20 个子精灵的其他精灵前后无缝移动怎么办?这可能是错误的方向,但我可以以某种方式将一个精灵及其子图层制作为一层(或将所有左臂精灵制作为一层,将右臂精灵制作为另一层)?我看到可以处理这个问题的游戏,但是什么 这是如何处理的背后的概念?(我看到的一个游戏就是我想要的Fallout Shelter,每个人都有手臂,腿,武器等,他们走在其他人的前面或后面,所有的精灵都以正确的方式出现,但不像Fallout庇护我的游戏具有完全平坦的 2D 图像,这就是我希望它保持的方式。)

第三个更高级的概念。如果我想让这些精灵像一个精灵的手臂抓住另一个精灵一样交互怎么办(所以一只手臂将在第二个精灵人的后面,但另一只手臂将完全在另一个精灵人的前面)?如何处理图层以显示在正确的 zPosition 中?也许这是不可能的?好的,我完成了。很抱歉在一篇文章中提出了一百万个问题。我正在寻找这些问题背后的概念,以便开始计划和编程。谢谢你的帮助。

0 投票
1 回答
814 浏览

ios - 将视图置于最前面,即使它不是正确的层次顺序

我知道“如何将视图带到前面”,被问了很多次,我不寻找另一个:

我为什么这不起作用的问题是,我有不同的层次结构。

我有 UIView 我添加 UITableView (第一个),然后在顶部添加另一个 UITableView (第二个)。

为什么我有两个 UITableView 叠放在一起对于这个讨论并不重要,让我们说,它需要是这样的。

我有两个标题,一个来自第一个和第二个表格视图。现在我想将标签从第一个表视图标题带到前面。(这样就不会被第二个表格视图标题阻止)

所以在我的小草图中,我需要把第一个标签放在前面。

我在看zPosition,听起来不错,但我无法让它工作。

为了不得到一些无用的答案,有一个选项列表对我来说不是解决方案:

  • 不要把一张桌子放在另一张桌子后面——我需要这种安排。

  • 把第一张桌子放在前面:这张桌子在后面是有原因的(因为单元格显示)

  • 使第二个标题视图背景不透明 - 然后,位于标题视图下方的行将与标题标题混淆。
  • 在第二个标题视图上制作第一个标签 - 由于单元格、动画、...的移动,我需要成为第一个标题视图上的第一个标签(仅显示在前面)