Estoy creando un juego 2D con OpenGL ES para Android. Quiero realizar un efecto de agitación.

Mi idea es cambiar la coordenada y de mi cámara, pero no estoy seguro del algoritmo. Tengo un vector de posición con variables xey para mi clase de cámara.

0
droidmachine 31 mar. 2012 a las 23:18

1 respuesta

La mejor respuesta

Parece un duplicado del algoritmo Opengl Real world Camera Shake. Básicamente modele el temblor después de una onda Sin y module la amplitud dependiendo de cuánto desea que se mueva la cámara.

Un esquema realmente básico como el siguiente, deberá detener esto cuando la amplitud llegue a 0, entre otras cosas.

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);
}
2
Community 23 may. 2017 a las 15:20