我很难让Chipmunk物理引擎做我想做的事。似乎工作的唯一解决方案需要一些重载矢量数学。在为我的游戏的其他组成部分潜入那个兔子洞之前,我希望有人可以让我更好地解决这个问题。所需的游戏玩法如下:
基本理念就像驾驶汽车一样。你无法立即转身,而必须首先进行掉头转弯。那辆车还必须保持恒定的速度。我怎么能这样做?额外的问题:你怎么能覆盖花栗鼠调用更新身体位置的任何方法,这是个好主意吗?
答案 0 :(得分:1)
有关于如何使用特殊配置关节进行自上而下控制的教程: http://chipmunk-physics.net/tutorials/ChipmunkTileDemo/
它基于Chipmunk Pro,但控制角色的东西很容易适应香草花栗鼠。非Pro Chipmunk源附带的“Tank”演示实现了几乎相同的功能,如果你想看到它的一些C代码。
答案 1 :(得分:0)
你基本上想要更加渐进地旋转玩家的方向。您可以以恒定速率执行此操作,因此当您点击屏幕时,它将以恒定速率开始旋转,直到它达到正确的方向。这将产生圆形转弯圆圈。但是这会影响你的位置,所以你必须继续转弯,直到你与你所拍摄的位置发生碰撞。 你将旅行的路径类似于游戏Achtung die kurve。
所以你必须保存玩家的位置和方向(x,y和phi坐标)。要确定是否停止转动你可以做这样的事情:
dx = playerx - tapx;
dy = playery - tapy;
targetAngle = atan2(dy,dx);
if (phi > targetAngle)
{
if (phi - targetAngle > PI) omega = rotate;
else omega = -rotate;
}
else if (phi < targetAngle)
{
if (targetAngle - phi > PI) omega = -rotate;
else omega = rotate;
}
else omega = 0;