Swift 使用convert函数获取节点的位置会给我不同的值?

Swift 使用convert函数获取节点的位置会给我不同的值?,swift,xcode,sprite-kit,Swift,Xcode,Sprite Kit,因此,我试图使用convert(Player.position,from:castle).y函数获取节点“Player”的位置,但当我的对象下落且未移动到一边时,以及当它下落并移动到一边时(使用action.move(by:CGVector(dx:10,dy:0)),这会给我不同的值,我不明白为什么!我在didbeagin函数中使用这个函数,所以我想知道这是否是代码中的时间延迟问题或其他问题。请帮助 下面是一个例子: 我的玩家节点落在场景中,当它与不同的节点碰撞时,它会计算这两个节点的位置,如

因此,我试图使用convert(Player.position,from:castle).y函数获取节点“Player”的位置,但当我的对象下落且未移动到一边时,以及当它下落并移动到一边时(使用action
.move(by:CGVector(dx:10,dy:0)
),这会给我不同的值,我不明白为什么!我在
didbeagin
函数中使用这个函数,所以我想知道这是否是代码中的时间延迟问题或其他问题。请帮助

下面是一个例子:

  • 我的玩家节点落在场景中,当它与不同的节点碰撞时,它会计算这两个节点的位置,如果玩家
    y
    pos高于对象,则我会将碰撞
    设置为开
    ,如果不小于
    则设置为关
    (这样玩家就不能从对象中跌落)。这很有效
  • 我的玩家节点正在下降,但我也在和他一起移动到两侧,例如通过函数
    。移动(通过:CGVector(dx:10,dy:0)
    ,现在在这种情况下,玩家
    y
    的位置比第一个场景中的位置低,所以玩家节点穿过对象(碰撞
    关闭
    ),我不知道为什么
我打印出物体碰撞时的
y
值:

第一种情况:

player:110.2529296875
static_obj:108.0
player: 103.865478515625
static_obj: 108.0
第二种情况:

player:110.2529296875
static_obj:108.0
player: 103.865478515625
static_obj: 108.0
所以我的问题是这怎么可能?这是我的代码中的错误,线程的时间延迟,还是我遗漏了什么?请帮助