3

我正在创建一个赛车游戏,我需要通过 Box2d Javascript 在一些粗糙的表面区域上获得帮助。

  1. 我通过以下链接创建了汽车游戏 http://www.codekites.com/make-racing-car-box2d-javascript/
  2. 也制造了障碍。

问题:

  1. 现在我想要这样的障碍物,它不应该与汽车碰撞。但是当 Car 越过那个形状时,Car 就会变慢。

所以请帮助我,如何去做。我找到了 IsSensor,但这不起作用。所以请让我知道,如何去做。

4

1 回答 1

4

Aahhhh ...终于从stackoverflow本身获得了解决方案。这里是。

如何在box2d中检测碰撞但不碰撞?

我使用了错误的关键字。它是

fixturedef.isSensor = true; 

就是这样;)为了检测碰撞,我们必须像这样编写监听器

 world.SetContactListener(listener);
 var listener = new Box2D.Dynamics.b2ContactListener;
 listener.BeginContact = function(contact) {
    // console.log(contact.GetFixtureA().GetBody().GetUserData());
    div = document.getElementById("textUI");
    div.innerHTML = "Come "+contact.GetFixtureA().GetBody();
    defaultCarSpeed = defaultCarSpeed/2;
}

listener.EndContact = function(contact) {
    // console.log(contact.GetFixtureA().GetBody().GetUserData());
    div = document.getElementById("textUI");
    div.innerHTML = "Go "+contact.GetFixtureA().GetBody();
    defaultCarSpeed = defaultCarSpeed*2;
}
于 2013-03-25T15:49:49.603 回答