我正在使用OpenGL ES为Android创建2D游戏。我想要执行摇晃效果。
我的想法是改变我的相机的y坐标但是我不确定算法。我有一个带有x和y变量的位置向量用于我的相机类。
答案 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);
}