我正在使用box2d为我的游戏实现碰撞检测。
在大多数情况下,任何类型的碰撞检测都会像“移除敌人”或类似的东西一样,无论方向如何。
在我的情况下,碰撞检测用于防止英雄穿过墙壁。 所以,重要的是要知道他从哪个方向撞墙,所以我可以正确地更新他的位置。我现在的模板代码是:
if(!collided){
rabbit.position = ccp(rabbit.position.x + (pitch/4),rabbit.position.y + ((roll/4)*(-1)));
}
else if(abs(roll)>abs(pitch)){
rabbit.position = ccp(rabbit.position.x + (pitch/4) ,rabbit.position.y);
}
else if(abs(pitch)>abs(roll)){
rabbit.position = ccp(rabbit.position.x,rabbit.position.y + ((roll/4)*(-1)));
}
else{
rabbit.position = ccp(rabbit.position.x,rabbit.position.y);
}
当然,这段代码有很多问题,几乎没有什么可以列在这里。
那么,有没有办法,使用Box2D,我们可以告诉“英雄”击中物体的方向?
提前致谢。