Spritekit如何不转向

时间:2014-06-23 16:57:57

标签: sprite-kit

我正在构建一个pacman风格的迷宫游戏。 我可以施加冲动并将其限制在英雄所需的任何垂直或水平方向上。

但是,当我为墙壁添加物理身体精灵时,它会变得奇怪。 我设置了英雄物理身体和墙壁没有反弹。

将头撞到墙上,它会像预期的那样停止死亡。 但是,如果我改变方向并沿着墙壁移动,我会从墙壁稍微倾斜一点。 是什么原因导致这种情况以及如何避免它? 我想只在垂直和水平直线上移动。

1 个答案:

答案 0 :(得分:0)

好的,所以这里的解决方案有点反直觉。 不是在physicsBody上使用applyForce:或applyImpulse:方法系列,而是在sprite本身上使用runAction:forKey :. 对于方向的任何改变,removeAction:forKey:在调用runAction之前:forKey:保持正交。 (否则会有短暂的角度运动)

这里的另一个技巧是找到合适的距离速度。太快,它会飞过墙壁。 (错误?) 然后根据场景的大小使用乘数应用速度和距离。 总距离应该比任何方向都要大。 这样可以保持物体移动直到撞到墙壁或者让它向不同的方向移动。

这非常有效。

使用物理身体运动,它似乎最适合您有重力的平台游戏情况。

在俯视图中,通常没有重力。 (虽然可以想象你可能想要一个在精灵上施加重力的东西来吸吮它)