2012-03-31 88 views
0

我正在用Android的OpenGL ES创建2D游戏。我想执行摇动效果。OpenGL ES Shake效果

我的想法是改变我的相机的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); 
}