我试图通过加速度计的移动来改变附着在矩形上的物理体的速度。我无法让身体改变速度,一旦设置它是永久属性吗?
这是在我的 populateScene 中:
rect = new Rectangle(220, -200, 24, 24, this.getVertexBufferObjectManager());
rect.setColor(Color.GREEN);
mScene.attachChild(rect);
ball = PhysicsFactory.createBoxBody(mPhysicsWorld, rect, BodyType.DynamicBody, droppingBoxDef);
mPhysicsWorld.registerPhysicsConnector(new PhysicsConnector(
rect, ball));
这就是我尝试改变速度的地方:
@Override
public void onAccelerationChanged(AccelerationData pAccelerationData) {
int accellerometerSpeedX = (int)pAccelerationData.getX();
// accellerometerSpeedY = (int)pAccelerometerData.getY();
//Log.v("Accelerometer X Y Z: ", ""+pAccelerationData);
ball.setLinearVelocity(accellerometerSpeedX, 0);
}
如果没有矩形上方的第二部分,则可以正常加载并且其物理主体可以正常工作。当我尝试使用时它似乎消失了:ball.setLinearVelocity。
Body 对象是类中的全局变量,因此可以在两种方法中引用。我尝试在 Populatescene 中使用更新处理程序并在其中设置 ball.setLinearVelocity,但是结果相同。
本质上我的问题是:物体的速度在连接到物理世界后可以改变吗?