加速度計の動きで長方形に取り付けられた物体の速度を変えようとしていました。ボディに速度を変更させることができませんが、一度設定すると永続的なプロパティになりますか?
これは私の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);
}
上の2番目の部分がないと、長方形は正常に読み込まれ、物理ボディが正しく機能します。ball.setLinearVelocityを使おうとすると消えてしまうようです。
Bodyオブジェクトはクラス内のグローバル変数であるため、両方のメソッドで参照できます。Populatescene内で更新ハンドラーを使用してball.setLinearVelocityを設定しようとしましたが、同じ結果が得られました。
基本的に私の質問は、物理学の世界に接続された後、物体の速度を変更できるかどうかです。