当前位置: 首页 > 知识库问答 >
问题:

在Box2D中向上移动身体

窦英武
2023-03-14

我想再写一个像Flappy Bird这样的游戏。所以,我有一个身体,与鸟,并设置他的位置在开始在屏幕中部与精灵在上面。现在当用户点击屏幕时,我想把鸟向上移动。但我怎样才能做到呢?身体setTransform(向量、角度)不是我想要的。你能帮我解决这个问题吗?

共有1个答案

冷夜洛
2023-03-14

从Box2D用户手册(v2.3.0):

力和脉冲

你可以对物体施加力、扭矩和脉冲。当你施加一个力或一个冲量时,你会提供一个世界点,在这个世界点上施加载荷。这通常会导致围绕质心的扭矩。

void ApplyForce(const b2Vec2& force, const b2Vec2& point);
void ApplyTorque(float32 torque);
void ApplyLinearImpulse(const b2Vec2& impulse, const b2Vec2& point); 
void ApplyAngularImpulse(float32 impulse);

手册上有很多关于它有多短的信息...如果你打算使用发动机,它绝对值得一读。

 类似资料:
  • 我制作了一个身体,我想在点击按钮时移动它,我已经能够使用但它不准确。假设我想以40的线速度移动我的身体7米,我该怎么做? 我可以用身体。setTransform()但我需要身体真正移动,而不是传送。提前谢谢

  • 在纯java中,只需向坐标添加值,如下所示: 有没有办法对Box2D身体这样做?因为如果我这样做: 然后物体继续朝那个方向运动,直到我施加一个不同的力。那么,有没有办法让它以恒定的速度移动,而不是永远以恒定的速度移动?我尝试过摩擦,但似乎很痛苦。

  • 我在屏幕上有一个玩家box 2d对象,应该由两个按钮控制,一个左,一个右。当你按下右按钮时,玩家应该向右移动,但是当你按下左按钮时,玩家应该立即停止向右移动,向左移动。反之亦然。我试着这样做向右移动,b2Vec2脉冲(4,0);身体- 这是向左移动的b2Vec2脉冲(4,0);身体- 这是可行的,但当我先按右键再按左键时,玩家不会立即向左移动,而是继续向右移动一段时间,然后向左移动。我如何确保这不

  • 当我触摸屏幕时,身体会逐渐移动,当触摸点靠近时,身体会变慢。我的问题是我想以恒定的速度移动身体,假设给定的速度是60 kpH,身体应该以60 kpH的速度开始移动,直到接触点。我在想解决方案是在屏幕上触摸,获得角度,然后使用该角度移动身体,然后增加速度以获得正确的速度?

  • 我是Box2d的新手,遇到了问题,无法解决。当用户触摸我的左右按钮时,我想左右移动我的播放器。我创建了一个固定装置,我可以移动身体和固定装置,但不能移动玩家精灵。如何将玩家精灵连接到我的身体上?我该如何控制身体,因为我无法阻止它。我想找到一种控制box2d播放器的正确方法。我不能使用setLinerVelocity等。 这是我的密码 播放屏幕 显示方法 渲染方法 相机更新方法 createPlay

  • 我需要根据收到的表单游戏中心服务器的位置移动box 2d主体。 收到体位后,我只需使用以下命令更新体位:- 但它以不受许可的方式移动身体(例如,身体在屏幕上显示出一些人)。同时我的精灵形象不动(附身)。