gpt4 book ai didi

iphone - Box2d 动态主体粘在静态上

转载 作者:行者123 更新时间:2023-12-03 21:19:09 24 4
gpt4 key购买 nike

有时,当动态体移动并碰撞静态体时,动态卡住并停止。

http://imageshack.us/photo/my-images/14/screenfgz.png/ (顶部和底部的线是传感器,中心形状是主体)

用于移动使用的 mouseJoint->SetTarget(pos);

设置:世界

b2Vec2 gravity = b2Vec2(0.f, 0.f);
bool doSleep = true;
world = new b2World(gravity, doSleep);
world->SetContinuousPhysics(false); // when using true, dynamic tunneling through other bodies

动态 body

...
density = 1.f;
friction = 0.f;
restitution = 0.f;
...
body->SetBullet(true);
body->SetFixedRotation(true);

鼠标关节

  b2Vec2 locationWorld = b2Vec2(pos.x/PTM_RATIO,pos.y/PTM_RATIO);
b2MouseJointDef md;
md.bodyA = groundBody;
md.bodyB = body;
md.target = body->GetPosition();
md.collideConnected = true;
md.maxForce = 1000 * body->GetMass();
md.dampingRatio = 0.1f;
md.frequencyHz = 2.f;
mouseJoint = (b2MouseJoint *)world->CreateJoint(&md);

动态和静态物体都是矩形。旋转 = 0。

如何消除卡住?

最佳答案

如果您看到动态框被卡在静态主体的图 block 上(如屏幕截图所示),则这是目前 Box2D 中的一个已知问题。您可以通过对静态主体使用一个大多边形或循环形状来改进它,或者简单地将动态主体的角倾斜,使它们不是完美的正方形。

关于iphone - Box2d 动态主体粘在静态上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6648172/

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