【问题标题】:Having problems with a Parent and Child nodes when they each have an SKPhysicsBody当父节点和子节点各自具有 SKPhysicsBody 时出现问题
【发布时间】:2020-09-27 01:59:48
【问题描述】:

我在屏幕上方设置了一个 SKSpriteNode,以便它从上方掉落。所以它确实有一个受重力影响的 SKPhysicsBody。但这只是让它从上面掉下来,不会有碰撞检测。节点本身有 6 个子节点均匀分布。

但是我需要每个孩子都能够检测到碰撞。所以我给了他们一个 SKPhysicsBody。当我这样做时,它们似乎与父节点分离并造成混乱。将affectedByGravity 设置为false 不会执行任何操作。有没有我遗漏的步骤,可以将他们锤到他们的父母那里?

父SKNode的原因是因为会有多个,而且每个SKNode更容易移动所有子节点,也更容易一次性销毁。

左边是我想要的,右边是我给每个孩子自己的SKPhysicsBody时出现的混乱。

我应该补充一点,如果我将孩子的 isDynamic 设置为 false,那么他们会将父母举到屏幕上方,这样它就不会掉下来。

【问题讨论】:

    标签: swift skphysicsbody


    【解决方案1】:

    我的第一个问题是类别掩码设置不正确。

    我确保父母和孩子都属于同一类别

    然后我使用 SKContraint 基本上将每个孩子都钉在了父母身上。目前它似乎可以正常工作。

    下面的代码在每个孩子创建时运行。

    let rangeX       = SKRange(lowerLimit: indexSpacing, upperLimit: indexSpacing)
    let contraintX   = SKConstraint.positionX(rangeX)
    let rangeY       = SKRange(lowerLimit: (self.size.height/2), upperLimit (self.size.height/2))
    let contraintY   = SKConstraint.positionY(rangeY)
    self.constraints = [contraintX, contraintY]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-08-11
      • 1970-01-01
      • 2011-03-07
      • 2017-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多