我正在构建一个pacman风格的迷宫游戏。 我可以施加冲动并将其限制在英雄所需的任何垂直或水平方向上。
但是,当我为墙壁添加物理身体精灵时,它会变得奇怪。 我设置了英雄物理身体和墙壁没有反弹。
将头撞到墙上,它会像预期的那样停止死亡。 但是,如果我改变方向并沿着墙壁移动,我会从墙壁稍微倾斜一点。 是什么原因导致这种情况以及如何避免它? 我想只在垂直和水平直线上移动。
答案 0 :(得分:0)
好的,所以这里的解决方案有点反直觉。 不是在physicsBody上使用applyForce:或applyImpulse:方法系列,而是在sprite本身上使用runAction:forKey :. 对于方向的任何改变,removeAction:forKey:在调用runAction之前:forKey:保持正交。 (否则会有短暂的角度运动)
这里的另一个技巧是找到合适的距离速度。太快,它会飞过墙壁。 (错误?) 然后根据场景的大小使用乘数应用速度和距离。 总距离应该比任何方向都要大。 这样可以保持物体移动直到撞到墙壁或者让它向不同的方向移动。
这非常有效。
使用物理身体运动,它似乎最适合您有重力的平台游戏情况。
在俯视图中,通常没有重力。 (虽然可以想象你可能想要一个在精灵上施加重力的东西来吸吮它)