COCOS CREATOR 3.8位置变换问题

  • Creator 版本:3.8

  • 目标平台:edge,谷歌等 web

各位大神,在制作一个黄金矿工小游戏时遇到以下问题:钩子捕抓到由代码随机生成的节点时,节点重新设置的位置存在偏差,主要想知道这个偏差为什么会产生,这个偏差我是有其他方式解决的,就是想知道为什么编辑器自己摆的物品(金子,石头,药水)不会出现偏差,通过脚本自动生成的物品却会出现偏差

存在以下节点
image

如果直接通过编辑器设置位置,钩子捕抓到对应的物品时时,修改物品position到钩子与物品相碰时钩子所在的position,此时可以直接设置在正确的位置,

如果通过代码随机生成的位置,钩子捕抓到物品后,设置物品position为钩子位置会存在一定得偏差,我想问下这个偏差是如何产生的?

不存在偏差:

存在偏差:

对应的核心代码:
钩子捕获物品代码


金子等物品随机生成代码

预制体锚点有没有问题,会不会是旋转轴造成的,话说你这字体写代码不晕吗,我看着头晕…感觉都长一样
还有编辑器不是有步进调试吗,你暂停看下节点情况的就知道问题了啊

预制体锚点是没有问题的,都是在0.5,0.5,哈哈哈,我是习惯了这个字体了,我觉得看起来还是挺舒服的

如果存在偏移,可能是你碰撞检测的范围大了
简单点直接把钩子锚点设置在钩子中心位置
钩到金子以后,
金子节点.setParent(钩子节点,true)
这样金子就被挂到钩子节点下面了,参数true这样改变父节点世界坐标不会受影响
然后让金子节点setPosition(0,0)

不需要转换坐标 直接设置父节点为爪子就行 setParent 第二个参数传true

那你要么编辑器里面预览暂停看下实时数据,要么把rotation和postion的操作依次屏蔽,看下单一操作是不是正常的.主要也不知道你这个资源原本啥样的

尝试了一下,这个方法不行,虽然可以让物品直接挂到钩子下面,但是会导致钩子在回拉的过程中,物品回拉的运动轨迹和钩子的运动轨迹不一致

这个方式也是会其他的偏差

检查一下缩放

你那个爪子和线是不是开缩放改变的长度? 是的话 检查一下update的时候计算把

没有缩放的,变长也只是绳子的长度变成而已,缩放不修改

解决没有解决不了可用的话工程可以发出来 大家一起帮你看看

解决了的,只是搞不明白产生的原因而已,换了一种实现方式就不会有这问题了

可以看看两种预制体是不是一个layer