我已经设置了一个带有键盘控制玩家的box2d世界。玩家可以行走和跳跃。如何防止玩家在跳跃并按向物体方向的方向键时“粘”在墙上?
如何将玩家身体设置为多个物体的组(在左右两侧添加夹具)?并将摩擦力设置为0。
您需要改变影响角色身体的方式。您使用什么方法将其向左/右移动?尝试在身体上应用applyLinearImpulse,并确保身体定义中的摩擦不是非常高。
if (event.type == KeyReleased) {
if (!isKeyPressed(Keyboard::Left) && !isKeyPressed(Keyboard::Right)) {
player.stop();
}
}
b2Vec2 vel = body->GetLinearVelocity();
vel.x = 0;
body->SetLinearVelocity(vel);
这完全取决于你的物理引擎目前是如何工作的,因为有很多可能性。在我看来,最简单的方法是将显示的物体分成四个边界墙(上、左、右、下),只让可行走的地面(顶部)产生摩擦。