0

我正在使用 Apple 的 Sprite Kit 创建游戏,目前我绘制了一个SKShapeNode类似于以下内容的对象:

在此处输入图像描述

我的实际精灵有圆形边缘,但为了简单起见,我试图让所有东西都首先使用这个形状。我能够完美地绘制精灵。但是,我无法创建一个物理实体来覆盖精灵。我希望精灵能够识别其表面任何地方的碰撞,所以我想要一个仅覆盖深灰色区域的物理体。另外,我希望精灵对力和脉冲做出反应,所以我需要一个基于体积的物理体。

我的第一个想法是简单地使用CGPathRef我为精灵创建图像的相同方法,并将其传递给bodyWithPolygonFromPath方法以创建相应的物理体。我发现这行不通,因为我的形状不是凸的。

所以,现在我想我应该能够用它bodyWithBodies来创建一个形状适当的物理体。我想创建三个矩形物理体(一个覆盖灰色区域的左侧,一个覆盖顶部,一个覆盖右侧),并使用它们创建一个物理体,其区域覆盖我的精灵的灰色区域通过使用这个:

    mySprite.physicsbody = [SKPhysicsBody bodyWithBodies:@[body1, body2, body3]];

但是,我遇到的主要问题是正确定位进入数组的各个实体,该数组被传递给bodyWithBodies方法。通过使用上述方法,我显然无法控制这些物理物体相对于彼此放置的位置。结果是所有三个物理体在mySprite.

在将物理实体传递给bodyWithBodies方法之前,您应该如何准确地定位数组中的物理实体?

4

0 回答 0