Android用のOpenGL ESで2Dゲームを作っています。シェイク効果を出したいです。
私の考えは、カメラの y 座標を変更することですが、アルゴリズムについてはわかりません。カメラ クラスの x 変数と y 変数を持つ位置ベクトルがあります。
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);
}