camera.setCenter(pCenterX, pCenterY);
Entity e = new Entity(); e.setPosition(pX, pY); camera.setChaseEntity(e); e.registerEntityModifier(new MoveModifier(duration, e.getX(), pToX, e.getY(), pToY));Entity の(pX, pX)座標は点Aの開始点で、Move Modifier のパラメータ(pToX, pToY)は 終点Bの座標です。 AからBへカメラが移動した後、カメラの chase entityを無効にする必要があります。そのためには modifiers listenersを使用する必要があります - modifiers listenersについてはこの記事を確認してください。 そしてonModifierFinishedを上書きして、chase entityにnullを設定してください。以下が例です:
Entity e = new Entity(); e.setPosition(pX, pY); camera.setChaseEntity(e); final MoveModifier modifier = new MoveModifier(duration, e.getX(), pToX, e.getY(), pToY) { @Override protected void onModifierFinished(IEntity pItem) { super.onModifierFinished(pItem); camera.setChaseEntity(null); } }; e.registerEntityModifier(modifier);
この簡単なトリックによって、クールな移動エフェクトが使用できます。少なくとも私個人の意見としては、点Aから点Bへ単にジャンプするよりも良くなっています。
代わりにSmoothCameraを使用することもできます。 setCenter(x, y)メソッドを使って、カメラをスムーズに移動させることができます。 この種類のカメラを新規に作成する際に、コンストラクタでいくつか追加のパラメータを設定する必要があります。 パラメータには、別の点へ移動する際のX軸上とY軸上の移動速度などがあります。 このカメラタイプを使ってカメラを直接ジャンプ移動させたい場合は、setCenterDirect(x, y)メソッドを使用します。