我有两个问题:
1. 是否可以检索 b2Body 的当前 X 坐标?我知道 API GetPosition 但这还不够具体,我需要专门的 X 坐标。
2. 是否可以在我的 UIAccelerometer 委托(delegate)方法中为我的特定 b2Body 添加重力?
我想要做的是使用Apply Force 将带有Box2D 重力的当前UIAccelerometer 输入的b2Body 移动到一行中。
这就是我到目前为止所拥有的,没有人知道我如何将#1+#2 合并到这一行中吗?:
body->ApplyForce(b2Vec2(accelX*100, -30.0f), body->GetPosition());
谢谢!
编辑1:
感谢您回答这些问题,这让我明白了!
这给我留下了另外 3 个问题:
1 .现在我了解了如何获取 b2Body 的 x 坐标,我将如何设置它?
会是这样吗?
body->GetPosition().x = 30;
2 .使用这些 x 坐标,它与我使用 UIKit 时的 X 坐标相同吗?我知道 UIKit 框架的东西不同我只是想确保如果我在 UIKit 中做了类似的事情,它会输出相同的 X 坐标,对吗?
最佳答案
回答 1)
b2Vec pos = body->GetPosition();
float x = pos.x;
// do whatever you need to do with x
你也可以写
float x = body->GetPosition().x;
回答 2)
将 UIAccelerometer didAccelerate 方法所需的任何值存储在实例变量中。例如加速X:
accelX = acceleration.x;
在您的世界更新方法中,只需使用这些值以您需要的任何方式计算力。然后像您发布的那样施加力:
body->ApplyForce(b2Vec2(accelX*100, -30.0f), body->GetPosition());
关于ios - 混合 Box2D 加速度计 + 重力?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8016409/