21

LibGDX(Java)でゲームを作っています。

動きの速いキャラクターをカメラで追跡する必要があります。これを行う最も簡単な方法は、次のように書くことです。

this.getCamera().position.set(obj.x, obj.y, 0);

しかし、これをよりスムーズにするアルゴリズムはありますか? カメラがそれほど厳密ではなく、常に少し遅れる場合のように: キャラクターが素早く右に移動し、カメラが少し遅れて追従するか、突然どこか遠くに現れた場合、カメラはすぐにテレポートするのではなく、最高速度で移動します。近づくと速度が少し遅くなり、再びあなたを見つけます。

それを行うlibgdxライブラリはありますか、または誰かがこの経験をしましたか?

4

2 に答える 2

49

10分の1の距離をラーピングするような単純なものを試してください。それは驚くほどうまく機能します。

float lerp = 0.1f;
Vector3 position = this.getCamera().position;
position.x += (Obj.x - position.x) * lerp * deltaTime;
position.y += (Obj.y - position.y) * lerp * deltaTime;
于 2012-11-13T10:55:22.883 に答える
6

Aurelion Ribon のJava Universal Tween Engineを見てください。これは補間を実行し、探しているものが得られると思われるいくつかのイージング方程式があります。また、ウェイポイントや特定のアクションを連鎖させて他の興味深い効果を得るなど、他の高度な機能もあります。

ゲーム ロジックは、キャラクターが素早く動いているかどうか、または位置が段階的に変化しているかどうかを確認できます。これに応じて、現在のカメラ位置をトゥイーン エンジンに引き継ぎ、キャラクターの現在位置にスムーズにズームします。

于 2012-11-05T14:25:45.063 に答える