3

我正在学习Swift为iOS创建游戏,但我正在努力研究精灵如何碰撞并与背景进行交互。Swift游戏碰撞检测和物理 - 精灵和背景

基本的游戏将是一个球,你引导迷宫,但迷宫可能比屏幕大几倍。迷宫可能是一个大的位图,或由瓷砖组成,但我还没有决定如何使球与迷宫互动。

我可以制作迷宫精灵节点中的所有图块,然后让SpriteKit解决它,但我认为这不是一个好的选择。

接下来是SpriteKit边缘机构,如此处所示 - https://developer.apple.com/library/mac/documentation/GraphicsAnimation/Conceptual/SpriteKit_PG/Physics/Physics.html 我可以在迷宫中可能碰撞的部分使用这些吗?

另一个问题是,迷宫表面可能是圆形的,所以碰撞和物理也需要应对。

我能找到的所有例子似乎都是与其他精灵碰撞的精灵。但是精灵和背景呢?

有没有人有任何关于如何解决这个问题的聪明的想法,或者你可以指出我的一个例子,可以帮助吗?

马克

+0

我建议将墙壁变成精灵(L形,I形等等),然后创建一个SpriteKit场景并放下墙壁。这将使您可以轻松设置墙壁的物理类别,并且可以轻松与球交互。 –

回答

1

没有正确或错误的方式来做到这一点。

在互动的方式VS,你需要问自己一些问题1点坚实的背景:

多少内存我想消费?
我想在其上使用多少加载时间?
我希望背景有多详细?
我想做背景的多才多艺(变化量)?
背景是否大于最大纹理大小?

在您决定想要什么后,您会发现确定您将使用的方法更容易。

你的物理是一个不同的问题,请记住,物理和节点在这里是两个不同的东西,所以你的物理机构不必反映节点设计,允许你做像不可见的墙。你有这几个途径:

您可以使用SKPhysicsBody(texture:)使用质地,使你的墙(透明度不会有冲突)
如果你正在做的瓷砖,可以将身体连接到每瓦。
最后,您可以生成大量的物体并将它们合并到背景节点中。

同样,取决于你希望你的地图工作的方式会告诉你哪个选项是最好的。就我个人而言,我会从最后一个选项开始(将一堆物体合并在一起),因为这将允许您合并边缘物体,用于所有混凝土墙,然后如果您需要制作门或临时墙等物品,我会将它们添加到单独的节点。

问题与圆的部分。

SKPhysicsBody允许使用CGPath,因此只需为所需的任何形状创建路径。

+0

我想这就是我要找的https://www.raywenderlich.com/137216/whats-new-spritekit-ios-10-look-tile-maps – MarkT

+0

这是ios 10的一项新功能,可以让你使用拼图,他们可以有物理实体。 – MarkT

+0

是的。这与我所说的一样,唯一的问题是你想要消耗所有的内存 – Knight0fDragon