0

我正在使用适用于 Android 的 OpenGL ES 创建 2D 游戏。我想执行抖动效果。

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

4

1 回答 1

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);
}
于 2012-03-31T20:23:55.437 回答