【发布时间】:2014-11-21 19:13:37
【问题描述】:
我正在使用SpriteKit 构建一个2D 游戏,这就是我想要实现的目标。
想象一个垂直滚动的SKSpriteNode,它代表一座高楼。建筑物使用简单的图像表示,并具有设置为+ (SKPhysicsBody *)bodyWithTexture:(SKTexture*)texture size:(CGSize)size;(iOS 8 引入)的物理主体,因此它紧跟建筑物的路径。
建筑物的某些部分很特别。与这些部分碰撞应该会产生特殊的碰撞动作。例如,触摸建筑物的墙壁会触发 action 1,但触摸任何窗户都会触发 action 2。
我无法以某种方式定义建筑物的那些“特殊块”。
我正在考虑为建筑物的每个精灵图像制作某种“碰撞图”,它基本上是一个透明图像,其中不透明的块确定建筑物的可碰撞部分。简单示例如下所示(左:建筑图像,右:碰撞图图像):
这种方法的问题在于,当在上面的“碰撞图”图像上设置SKPhysicsBody 时,主体不会应用于所有块,而是仅环绕其中一个单独的块。换句话说:一个物理体只能应用于图像中的一个连续块。
最后,我想知道您在确定非连续碰撞贴图时使用的是哪种方法。
P.s.:建筑物的SKSpriteNode 由多个独特的纹理图像表示,这些图像一个接一个地垂直滚动。
提前谢谢你。
【问题讨论】:
标签: ios ios8 sprite-kit 2d-games skspritenode