0

Android用のOpenGL ESで2Dゲームを作っています。シェイク効果を出したいです。

私の考えは、カメラの y 座標を変更することですが、アルゴリズムについてはわかりません。カメラ クラスの x 変数と y 変数を持つ位置ベクトルがあります。

4

1 に答える 1

2

Opengl Real worldCameraShakeアルゴリズムの複製のように見えます。基本的に、正弦波の後に揺れをモデル化し、カメラを揺らしたい量に応じて振幅を変調します。

以下のような本当に基本的なアウトラインです。特に振幅が0に達したときに、これを停止する必要があります。

private float amplitude = 10.0f;
private float adjustAmplitudePerSecond = -1.0f;
private float timeElapsed = 0.0f;

public void shake(float deltaTime) {
    timeElapsed += deltaTime;
    amplitude += adjustAmplitudePerSecond * deltaTime;
    yourCamera.y += + Math.sin(timeElapsed);
}
于 2012-03-31T20:23:55.437 に答える