我才刚刚开始使用box2d。我能够创建一些对象,并创建一个使用这些对象的世界。例如,要创建一个框(取自:http://box2d-js.sourceforge.net/index2.html),我可以这样做:
elements = getElementsByClass("box2d");
for ( var i = 0; i < elements.length; i ++ ) {
properties[i] = getElementProperties( elements[i] );
bodyDef.type = b2Body.b2_dynamicBody;
var data = { element: elements[i]};
bodyDef.userData = data;
fixDef.shape = new b2PolygonShape;
fixDef.shape.SetAsBox(2 //half width , 2);
bodyDef.position.x = Math.random() * 10;
bodyDef.position.y = Math.random() * 10;
world.CreateBody(bodyDef).CreateFixture(fixDef);
}
我想做的是将带有文本的div转换为形状,并在box2D中使用它们。我真的不知道该从何说起。我现在使用userData属性,认为这至少是一个开始。
我在这里找到了一个很好的例子:http://mrdoob.com/projects/chromeexperiments/google_gravity/
定义了getElementProperties和getElementsByClass。我在考虑使用getElementProperties来设置形状尺寸。
发布于 2012-02-20 17:35:19
我正在用iOS做一些类似的事情,但是处理它的一个好方法是用div中保存的信息制作图像。然后,您可以从该图像生成一个精灵,并将其添加为box2d body的userData。当你更新的时候( iOS中的tick: method,我不确定javascript),然后你迭代所有的主体并调整sprite的位置。box2d世界应该为您做所有其他的事情。
发布于 2012-09-20 19:06:18
你可以参考这个样本。
http://jsbin.com/efequk/5
http://www.jeremyhubble.com/box2d.html
https://stackoverflow.com/questions/7669757
复制相似问题