gpt4 book ai didi

javascript - 将 Box2d 与 EaselJS 形状一起使用?

转载 作者:行者123 更新时间:2023-12-03 12:38:56 25 4
gpt4 key购买 nike

我正在尝试学习 Box2d 和 EaselJS。到目前为止,我一直在使用 Box2d 的“调试”形状。如何从 EaselJS 制作自定义形状(启用物理功能)?例如,我有以下代码在屏幕上生成随机球。

var fixDef = new box2d.b2FixtureDef();
fixDef.density = 1;
fixDef.friction = 0.5;
fixDef.restitution = 0.5;
var bodyDef = new box2d.b2BodyDef();
bodyDef.type = box2d.b2Body.b2_dynamicBody;
bodyDef.position.x = Math.random()*800/SCALE;
bodyDef.position.y = 0;
fixDef.shape = new box2d.b2CircleShape(Math.random()*100/SCALE);
world.CreateBody(bodyDef).CreateFixture(fixDef);

如何使用 EaselJS shape物体?

谢谢!

最佳答案

对于要显示的每个 DisplayObject(形状、位图等..),您需要一个自己的 b2dObject。然后,每次更新舞台(或 b2dWorld)时,您都必须检索 b2dObject 的位置和旋转并将其应用到您的形状 -> 完成。您可以在这里找到一个很好的例子:https://github.com/CreateJS/sandbox/blob/master/EaselJS_Box2dWeb

你需要的是这样的:

var pt = body.GetPosition();
var sprite = ball.sprite;
sprite.x = pt.x*WORLD_SCALE;
sprite.y = pt.y*WORLD_SCALE;
sprite.rotation = body.GetAngle()/Math.PI*180;

关于javascript - 将 Box2d 与 EaselJS 形状一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23598802/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com