ボールであるスプライトがあり、FixedStepPhysicsWorld オプションに従って適切に落下しています。しかし、落下中のこのボールにベクトルを追従させたいと思います。そこで、onManagedUpdate スプライトのメソッドをオーバーライドすることにしました。
多くのテストの後、1 つのベクトルを描画しただけで、pSecondsElapsed がインクリメントされていないことに気付きました。
これが私のコードです:
@Override
public void onPopulateScene(Scene pScene,
OnPopulateSceneCallback pOnPopulateSceneCallback) throws Exception {
sPlayer= new Sprite(200,0, playerTextureRegion, this.mEngine.getVertexBufferObjectManager()){
@Override
protected void onManagedUpdate(float pSecondsElapsed) {
super.onManagedUpdate(pSecondsElapsed);
Log.d("<<<<<<<<<<<,>>>>>>>>>"+pSecondsElapsed+","");
}
出力は次のとおりです。
11-07 21:14:32.242: D/<<<<<<<<<<<,>>>>>>>>0.02 (23720): [MainActivity.java:359:onManagedUpdate()]
11-07 21:14:32.257: D/<<<<<<<<<<<,>>>>>>>>0.02 (23720): [MainActivity.java:359:onManagedUpdate()]
11-07 21:14:32.281: D/<<<<<<<<<<<,>>>>>>>>0.02 (23720): [MainActivity.java:359:onManagedUpdate()]
私のエンジンは次のようなものです:
@Override
public Engine onCreateEngine(final EngineOptions pEngineOptions) {
return new FixedStepEngine(pEngineOptions, 50);
}
質問: 1 - pSecondsElapsed が変化しないのはなぜですか? 2 - このボールの各位置のベクトルを描きたい。このメソッド (onManagedUpdate) が呼び出されるたびに、新しい Line をデタッチしてアタッチする必要がありますか?