SpriteKit中的“碰撞图”

时间:2014-11-21 19:13:37

标签: ios ios8 sprite-kit 2d-games skspritenode

我正在使用SpriteKit构建 2D游戏,这就是我想要实现的目标。

想象一下,垂直滚动SKSpriteNode代表一座高楼。建筑物使用简单的图像表示,并且物理主体设置为+ (SKPhysicsBody *)bodyWithTexture:(SKTexture*)texture size:(CGSize)size;(在iOS 8中引入),因此它紧跟建筑物的路径。

建筑的某些部分很特别。与这些部件碰撞应该产生特殊的碰撞动作。例如,触摸建筑物的墙壁会触发动作1 ,但触摸任何窗口都会触发动作2

我无法做到的是以某种方式定义那些"特殊块"建筑物。

我正在考虑制作一些"碰撞图"对于每个建筑物的精灵图像,其基本上是透明图像,其中非透明块确定建筑物的可碰撞部分。下面的简单示例(左图:建筑图像,右图:碰撞图图像):

Building image Collision map image

这种方法的问题是在"碰撞图上设置SKPhysicsBody"像上面那样的图像,主体不适用于所有块,但它只包裹其中一个单独的块。换句话说:一个物理体只能应用于图像中的一个连续块。

总而言之,我想知道在确定非连续碰撞图时使用的是哪种方法。

P.s。:建筑物SKSpriteNode用多个独特的纹理图像表示,这些图像是一个接一个地垂直滚动。

提前谢谢。

1 个答案:

答案 0 :(得分:1)

只是一个想法: 你不能在建筑物上使用两个精灵,它们位于同一个地方: - 一个代表建筑物的物理主体(图像中的左侧) - 反转碰撞图图像以获得单个物理体块。特殊区域应与非特殊区域重叠一个像素

希望你理解我的意思。这只是一个想法