gpt4 book ai didi

ios - 父旋转后获取 SpriteKit 节点的可见位置

转载 作者:行者123 更新时间:2023-12-01 16:40:00 25 4
gpt4 key购买 nike

我正在使用 Sprite Kit(嗯,也许“学习”更合适)。我有一个方形游戏板:

+-----+-----+-----+
| 0,2 | 1,2 | 2,2 |
+-----+-----+-----+
| 0,1 | 1,1 | 2,1 |
+-----+-----+-----+
| 0,0 | 1,0 | 2,0 |
+-----+-----+-----+

在测试期间,我将一个 Sprite 添加到板位置 2,0。然后我将板逆时针旋转 90 度,使 Sprite - 视觉 - 位于位置 2,2。当然,由于 Sprite 的位置不会被旋转修改,实际的 x,y 坐标不会改变。我的算法等是围绕“视觉”板位置而设计的,这使我无需为所有 4 个旋转角度编写代码。所以,我在内部知道 2,0 的 Sprite 移动到 2,2(视觉上);我现在需要使用“在棋盘位置 2,2 看到的 Sprite ”。我如何获得 Sprite 的“视觉”x,y坐标?我试过了:
[_board convertPoint:p toNode:self];
[_board convertPoint:p toNode:self.view]; // didn't expect this to work

'p' 是我从棋盘位置 2,2 计算的 CGPoint。这不是一个代码问题——它更像是一个“我该怎么做”的问题。

最佳答案

获取 SKNode的视觉位置,您需要将其 .position在其.parent的坐标系到它的.scene的坐标系:

CGPoint vPos = [node.parent convertPoint:node.position toNode:node.scene];

看起来您所做的第一次尝试( [_board convertPoint:p toNode:self] )应该可以工作,只要:
  • p是您要在 _board 中查找的节点内的有效点的坐标系。
  • 该代码是从您的 SKScene 调用的。这样self引用节点所在的场景。
  • 关于ios - 父旋转后获取 SpriteKit 节点的可见位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25224319/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com