当只需要接触检测时,我可以使用SKAction移动动态物理体吗



我正在看教程,其中的定义如下:

  • 平面是具有动态物理体的精灵
  • 平面移动是通过跟随路径的动作来完成的
  • 子弹和飞机之间有接触检测
  • 子弹是精灵,它的物理体设置为静态(在我看来这并不罕见)

以下是教程的链接以获取更多信息。

问题:

  1. 当我们用动作来移动身体时,我们如何设置身体的动态特性有区别吗?因为子弹是静止的,但移动仍然没有问题。

  2. 当我们遇到这样的情况时,我们不需要碰撞检测,只需要接触检测,并且我们不能通过施加力或脉冲来移动精灵(敌人),什么是好方法?这种方法正确吗?

我认为这是一种很好的方法,但我想充分了解当我们使用这种方法时真正发生的事情,以及是否存在任何缺点或可能的问题。

SO上有一些帖子建议我们不应该使用移动动态物理体的动作。我知道,我们不可能在所有情况下都使用这种方法。例如,这不适用于上面有其他物体的移动平台,因为平台上的物体和通过动作移动的平台之间没有正确的物理模拟。但在像本教程中这样的情况下,我们只需要对只能通过动作(沿路径移动)移动的对象进行接触检测,我想这不是问题吗?

  1. 静态意味着身体不受物理的影响。这并不意味着它不能手动重新定位或移动。因此,如果某个东西被设置为静态,它会参与物理模拟,但不会受到它的影响。想象一下飞机撞上一座山。这架飞机是动态的,即使它参与了物理学,这座山也会坐在那里。但你仍然可以通过一个位置或动作手动移动那座山。

  2. 我不完全理解你的问题,但我会试一试。

你可以手动移动身体(使用位置属性或动作),但你需要问问自己为什么要这样做。你通常不想这样做,因为他们绕过了物理模拟。如果你强迫它四处移动,那么首先使用物理体有什么意义。。正确的

但是,如果你的身体是一个完全静止的通电,而你只是想让它用一个动作绕一圈,那也没关系。你可能只是想对子弹、通电等使用接触检测,而不需要使用物理方法来移动它。这没什么错。

最新更新