加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

objective-c – Sprite Kit改变了锚点,但保持物理中心

发布时间:2020-12-16 03:07:47 所属栏目:百科 来源:网络整理
导读:我有很多不同的sprite节点与物理大小相同的对象.为了定位,我需要更改节点的锚点,但这也改变了物理学家的位置.有没有办法保持物理中心的锚点?使用物理学的路径是不可能的,因为我有这么多不同的对象. 解决方法 anchorPoint是一个纯粹的视觉属性,它定义了纹理
我有很多不同的sprite节点与物理大小相同的对象.为了定位,我需要更改节点的锚点,但这也改变了物理学家的位置.有没有办法保持物理中心的锚点?使用物理学的路径是不可能的,因为我有这么多不同的对象.

解决方法

anchorPoint是一个纯粹的视觉属性,它定义了纹理如何相对于节点的位置绘制.物理机构不受改变anchorPoint的影响,它保持以节点的位置为中心.

所以从某种意义上讲,物理学家的确保持着精灵的位置.通过更改anchorPoint,您只需更改sprite纹理的显示位置,我相信您假设物理体将以Sprite的anchorPoint为中心.它不是,因为一个节点可以有一个物理体,但只有很少的节点(精灵,场景,视频)有一个anchorPoint属性.

解决这个问题的最好方法是创建你的精灵图像,以便物理体总被认为是以图像为中心.在图像周围留出透明边框,以确保图像大小始终相同,并且正确定位身体的位置.

您也可以使用SKPhysicsBody bodyWithRectangleOfSize:center:initializer来定义身体的中心点,并将其与sprite的anchorPoint进行匹配.但这是棘手的和适得其反的,因为如果你做出最小的变化,你将不得不不断地调整bodyPoint和sprite.

除此之外,最好离开anchorPoint,特别是物理学.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读