gpt4 book ai didi

objective-c - Sprite Kit 更改 anchor 但保持 physicsbody 居中

转载 作者:太空狗 更新时间:2023-10-30 03:26:05 25 4
gpt4 key购买 nike

我有很多不同的 sprite 节点,它们的 physicsbody 与对象的大小相同。为了定位,我需要更改节点的 anchor ,但这也会更改物理体的位置。有没有办法让物理体的 anchor 保持居中?不能为物理体使用路径,因为我有太多不同的对象。

最佳答案

anchorPoint 是一个纯粹的视觉属性,它定义了纹理相对于节点位置的绘制方式。物理体不受更改 anchorPoint 的影响,它仍然以节点的 position 为中心。

所以从某种意义上说,物理体确实已经保持在 Sprite 位置的中心。通过更改 anchor ,您只是更改了 Sprite 纹理的显示位置,而且我相信您假设物理体将以 Sprite 的 anchor 为中心。它不会,因为每个节点都可以有一个物理体,但只有少数节点( Sprite 、场景、视频)有一个 anchorPoint 属性。

解决此问题的最佳方法是创建 Sprite 图像,以便始终假定物理体位于图像的中心。在图像周围留下透明边框,以确保图像大小始终相同,并且 body 的位置正确居中。

您还可以使用 SKPhysicsBody bodyWithRectangleOfSize:center: 初始化程序来定义主体的中心点并将其与 Sprite 的 anchor 相匹配。但这很棘手,而且会适得其反,因为即使做出最小的更改,您也必须不断地重新对齐 body 和 sprite anchorPoint。

除此之外,最好不要管 anchor ,尤其是在物理学方面。

关于objective-c - Sprite Kit 更改 anchor 但保持 physicsbody 居中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22095389/

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