我有两个问题:
1.是否可以检索b2Body的当前X坐标?我知道API GetPosition,但是还不够具体,我需要X坐标。
2.是否可以在我的UIAccelerometer委托方法中向我的特定b2Body添加重力?
我要执行的操作是使用Apply Force将具有Box2D重力的当前UIAccelerometerometer输入的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方法中需要的任何值存储在实例变量中。例如accelX:
accelX = acceleration.x;
在您的世界更新方法中,只需使用这些值即可以您需要的任何方式来计算力。然后像您发布的那样施加力:
body->ApplyForce(b2Vec2(accelX*100, -30.0f), body->GetPosition());
关于ios - 混合Box2D加速度计+重力?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8016409/