javascript - 如何使用 HTML5 Canvas 而不是 Debug Draw 来绘制我的 Box2D 世界?

标签 javascript jquery physics box2d

我非常了解 HTML5 Canvas ,我了解使用循环等的基础知识和动画。

我正在使用的演示:(单击以制作形状)http://henry.brown.name/experiments/box2d/example-canvas.html

我不太熟悉的是Box2D。我正在使用 Box2DWeb 端口,听说它比 Box2D-js 更新,我不确定哪个最好。

我知道如何初始化“世界”并且我可以在世界中放置对象。然后,我使用 Step 为世界设置动画 - 但是到目前为止,为了在屏幕上显示它,我只能使用 debug draw 来让它工作,因为它基本上会为你做所有事情。

我不想使用调试绘图,而是使用 Canvas 来绘制,例如一辆汽车,而不仅仅是一个正方形。如何将正方形的物理特性附加到汽车的图像上?我只是无法理解如何将 canvas 与 Box2D 集成。

任何提示将不胜感激!

谢谢

最佳答案

过去几天我一直在尝试同样的事情。 我找到了 Jonny Strömberg's tutorial ,这不是很详细,但通过分析代码,我发现他是如何检索 body 位置的:

var b = world.GetBodyList()

GetBodyList() 似乎是一个迭代数组,因此可以通过 b.m_next 访问下一个主体。

然后你可以使用

b.GetPosition().x
b.GetPosition().y
b.GetAngle()

检索 body 的坐标。

编辑:此代码用于 Box2dweb 库,我发现它的文档比 Box2djs 更好

关于javascript - 如何使用 HTML5 Canvas 而不是 Debug Draw 来绘制我的 Box2D 世界?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7294080/

相关文章:

physics - 如何防止 [circle] body 滑入静态 body 之间的 0px 间隙

javascript - 选择所有有类(class)的家长

javascript - 计算 CSS3 缩放框在另一个框内的最高位置

javascript - 是否可以使用 AngularJS 验证包含名称为 objectVO.fieldname 的文本字段

javascript - 如何让我的 Jchartfx 面积图显示在我的 gridview 下方?

javascript - 单击下一步按钮时自动调整大小至全屏

java - jBullet 例子

javascript - 如何使用 jQuery 检查字符串是否包含给定字符串

javascript - 在同一个对象中添加两个字符串属性(Uncaught ReferenceError)

java - 两个二维圆之间的碰撞响应