2012-03-31 17 views
0

Android用OpenGL ESを使用して2Dゲームを作成しています。シェイクエフェクトを実行します。OpenGL ESシェイクエフェクト

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

答えて

2

Opengl Real world Camera Shake algorithmのように見えます。本質的には、Sin波の後の振れをモデル化し、カメラの振り幅に応じて振幅を調整します。振幅は、とりわけ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); 
}