2014-02-16 4 views
1

Я пытаюсь поймать объект мышью, используя mousejoint. Поскольку я дурак, я украл код. Но это не работает или я.mouseJoint box2dweb не работает

Я получаю эту ошибку:

Uncaught TypeError: Object #< ba > has no method 'IsActive' Box2dWeb-2.1.a.3.min.js:236 Uncaught TypeError: Object #< ba > has no method 'SetAwake' Box2dWeb-2.1.a.3.min.js:223

здесь код:

var def = new b2MouseJointDef(); 

      def.bodyA = ground; 
      def.bodyB = body; 
      def.target = p; 

      def.collideConnected = true; 
      def.maxForce = 1000 * body.GetMass(); 
      def.dampingRatio = 0; 

      mouse_joint = world.CreateJoint(def); 

      body.SetAwake(true); 

И это тело

function createBox(world, x, y, width, height, options) { 
options = $.extend(true, { 
    'density' : 1.0 , 
    'friction' : 1.0 , 
    'restitution' : 0.5 , 

    'linearDamping' : 0.0 , 
    'angularDamping' : 0.0 , 

    'type' : b2Body.b2_dynamicBody 
}, options); 

var body_def = new b2BodyDef(); 
var fix_def = new b2FixtureDef(); 

fix_def.density = options.density; 
fix_def.friction = options.friction; 
fix_def.restitution = options.restitution; 

fix_def.shape = new b2PolygonShape(); 

fix_def.shape.SetAsBox(width , height); 

body_def.position.Set(x , y); 

body_def.linearDamping = options.linearDamping; 
body_def.angularDamping = options.angularDamping; 

body_def.type = options.type; 
body_def.userData = options.user_data; 

var b = world.CreateBody(body_def); 
var f = b.CreateFixture(fix_def); 

return b; 

}

Может быть кто-то может помочь ?

Фальк

ответ

0

Я могу ответить на половину вопроса:

, если я создал землю

ground = createBox(world, 4, 1, 4 , 0.5, {type : b2Body.b2_staticBody}); 

вместо с этой функцией: вар bodyDef = новый b2BodyDef();

var fixDef = new b2FixtureDef(); 
fixDef.density = 1.0; 
fixDef.friction = 1.0; 
fixDef.restitution = 0.5; 

fixDef.shape = new b2PolygonShape; 

//mention half the sizes 
fixDef.shape.SetAsBox(4.00 , .5); 

//set the position of the center 
bodyDef.position.Set(4.10 , 1); 

return world.CreateBody(bodyDef).CreateFixture(fixDef); 

затем он работает. Но почему?

Смежные вопросы