2015-06-07 2 views
0

Я реализовал Box2dWeb на сервере Node.js, и все работает отлично, кроме столкновений. Когда есть 2 игрока, связанные с их телами, они не сталкиваются - просто переходите друг к другу. Вот код создания футбольного клуба:Корпуса Box2dWeb не сталкиваются

//World creation 
var world = new b2World(new b2Vec2(0, 0)); 
//Body+Fixture creation 
var bodyDef = new b2BodyDef(); 
bodyDef.type = b2Body.b2_dynamicBody; 
bodyDef.position.x = 100; 
bodyDef.position.y = 100; 
bodyDef.linearDamping = 5; 
bodyDef.angularDamping = 1; 

var fixDef = new b2FixtureDef(); 
fixDef.density = 0.001; 
fixDef.friction = 1; 
fixDef.restitution = 1; 
fixDef.shape = new b2CircleShape; 
fixDef.shape.SetRadius(8); 

var body = world.CreateBody(bodyDef); 
body.CreateFixture(fixDef); 

Любая помощь очень ценится!

EDIT: Я добавил этот код:

var listener = new Box2D.Dynamics.b2ContactListener; 
listener.BeginContact = function(contact) { 
    console.log(contact.GetFixtureA().GetBody().GetUserData()); 
} 
world.SetContactListener(listener); 

и когда тела сталкиваются, я получаю «нуль» в консоли.

+0

Эй рады видеть вас идти вперед с Box2dWeb;), как ты рисуешь тела на экране? – Jackson

+0

В настоящее время я только рисую тела на клиенте, получая body.GetPosition(). – coNNecTT

+1

Это может быть проблема со шкалой? Вы должны убедиться, что при рисовании объектов, на которых вы используете правильное значение шкалы. – Jackson

ответ

0

ОК, это было просто, как я и ожидал. Я изменил код с:

this.world.Step(deltaTime); 

в

this.world.Step(deltaTime, 10, 10);