在Update函数内部,如果2个实体发生碰撞,我想删除它们(或将它们标记为需要删除,并在时间步骤结束时删除它们).我怎么做到这一点?
在更新功能中我尝试
var bodyA = this.m_fixtureA.m_body;
...
bodyA.m_world.DestroyBody(bodyA);
Run Code Online (Sandbox Code Playgroud)
但是,它们不会被删除.似乎当我尝试删除它们时,this.IsLocked()设置为true.
我一直在用box2dweb和node.js 制作游戏.一切都运转正常,直到我决定改用Google的LiquidFun引擎,该引擎也基于Box2d.
在box2dweb中,我可以通过将以下内容添加到box2d.js文件的底部来导出我需要的模块.
module.exports = {
b2Vec2: Box2D.Common.Math.b2Vec2,
b2BodyDef: Box2D.Dynamics.b2BodyDef,
b2Body: Box2D.Dynamics.b2Body
};
Run Code Online (Sandbox Code Playgroud)
LiquidFun在其编译文件中不使用相同的命名空间,所以我试过:
module.exports = {
b2Vec2,
b2BodyDef,
b2Body
};
Run Code Online (Sandbox Code Playgroud)
我没有运气让node.js导出我需要的任何功能.有人可以告诉我如何正确导出LiquidFun吗?
我想使用 box2djs 模拟弹簧效果。经过大量搜索,我认为可以使用该距离关节(我不确定)。我尝试了以下代码,但我看不到身体之间的任何关节。
distance_joint = new b2DistanceJointDef();
distance_joint.body1 = Body1;
distance_joint.body2 = Body2;
distance_joint.localAnchorA = new b2Vec2(0, 0);
distance_joint.localAnchorB = new b2Vec2(0, 0);
distance_joint.length = 3;
distance_joint.collideConnected = true;
return world.CreateJoint(distance_joint);
Run Code Online (Sandbox Code Playgroud)
任何的想法...
谢谢
如何使用kineticJS和box2dweb以便我可以进行碰撞检测?比如,如何在通过kineticJS渲染的图像周围放置圆形边界并通过box2dweb应用物理?
有没有关于这个或任何可以帮助我的代码的好教程?或者有什么有效的方法可以与kineticJS本身进行碰撞检测?
我是Box2D的新手,我正在尝试制作一个简单的游戏,其中角色跳跃并挑选一枚硬币.我能够创建一个联系人监听器并在检测到联系人时删除硬币.问题是角色和硬币相撞.我能够过滤掉他们的联系,但我无法确定角色是否击中了硬币.我确信必须有一些相对简单的方法,因为几乎每场比赛都有收藏品,但我没有找到实现这一目标的方法.
谢谢你的回答.
box2dweb ×5
javascript ×3
box2d ×2
game-physics ×1
html5 ×1
kineticjs ×1
liquidfun ×1
node.js ×1