在Spritekit中从多个块创建“平滑”的平面

时间:2015-05-26 00:44:29

标签: swift sprite-kit

我正在尝试使用Spritekit和Swift编写iOS游戏,这是我在stackoverflow上的第一个问题:)

为了简化我的问题和我的约束,假设我有两个具有相同高度的矩形SKShapeNodes(我的级别),它们完全并排,物理主体但非动态。英雄只是一个方形的SKShapeNode,它有一个动态物理体,可以在这些矩形的顶部移动。玩家使用加速度计来移动英雄。

我不确定为什么,但有时候,当英雄沿着矩形的顶部滑动时,它会立即停在两个矩形之间的间隙,或者似乎在这个间隙上跳过(小跳过它) :(((此举应该是顺畅的。

是否有一种解决方法可以使两个矩形之间的表面更“平坦”/更平滑,知道我不能将它们合并用于游戏目的?

(我尝试过的东西不起作用:“地板”所有尺寸,位置到最接近的Int值;使英雄物理体更圆;启用/禁用精确碰撞)。

谢谢!

1 个答案:

答案 0 :(得分:1)

此问题最简单的解决方法是为移动对象而不是矩形创建圆形物理主体。如果需要,您还可以组合2个或更多物理实体,以更准确地覆盖对象的高度。请参阅docs中的(SKPhysicsBody *)bodyWithBodies:(NSArray *)bodies

将2个实体与底部的圆圈合并:

enter image description here