OpenGL ES摇动效果

时间:2012-03-31 19:18:40

标签: android opengl-es shake

我正在使用OpenGL ES为Android创建2D游戏。我想要执行摇晃效果。

我的想法是改变我的相机的y坐标但是我不确定算法。我有一个带有x和y变量的位置向量用于我的相机类。

1 个答案:

答案 0 :(得分: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);
}