¿Cómo implementaría un camino sin fin por el que corre el jugador?

Respuestas:

16

Dibujaría un único quad con textura en el suelo (es decir, acostado en el plano XZ), tan grande como debería ser el área visible, y luego jugaría con las coordenadas de textura de los vértices (con el modo de direccionamiento de textura configurado para ajustarse ) para se ocupa automáticamente tanto de la repetición de textura como del desplazamiento de textura .

  1. Para la repetición en lugar de establecer su coordenada de textura vertical de [0 a 1], configúrela de [0 a N] donde N es el número de veces que desea que se repita la textura. Ajuste este valor según la altura de su quad en comparación con la altura de su textura.
  2. Para desplazarme , simplemente desplazaría la coordenada de textura vertical, de modo que en lugar de oscilar entre [0 y N] oscile entre [inc y N + inc] con el valor de inc incrementado o decrementado cada cuadro. De vez en cuando, envuelvo inc nuevamente al origen para evitar el desbordamiento / subflujo.

EDITAR Intenté implementar esto exactamente como lo describí (pero en XNA) y funcionó bastante bien. Vea este video de la demostración. Código fuente aquí para los interesados.


Por ejemplo, con N igual a 3, obtendría algo parecido a la imagen a continuación (he pintado la sección central en rojo para que pueda ver dónde se produce la repetición). Luego, simplemente cambiando el valor de inc haría que la carretera se desplace en una dirección u otra, dependiendo de si la incrementó o disminuyó.

ingrese la descripción de la imagen aquí

David Gouveia
fuente
La misma técnica se puede utilizar para falsificar la animación de los hilos del tanque. Por supuesto, no será utilizable si
modelas
1

Si desea hacer un camino interminable "de verdad", cree tres superficies y haga que se repitan a medida que cada superficie se mueve fuera de la vista. Coloque las superficies de extremo a extremo en el espacio mundial y muévalas todas hacia la cámara. A medida que el extremo más cercano se aleja de la cámara, restablezca su posición al final de la superficie más alejada.

Si desea implementarlo como un sprite con la ilusión de movimiento, debe crear una serie de texturas diferentes, que deberían verse más o menos así:

A medida que la vista avanza, recorra las texturas en orden.

Kitt Basch
fuente
0

Repetir la imagen es una buena idea. Calcule cuántas repeticiones deben estar visibles en la pantalla y dibuje la imagen esa cantidad de veces. A medida que la carretera se desplaza, habrá un punto donde una imagen está completamente detrás de la cámara y, por lo tanto, invisible. En ese punto, desea mover esa imagen desde detrás de sus pies hasta el extremo de su tira de imagen finita.

Mientras estamos en ello, obtendrás el mejor efecto imitando la perspectiva inestable de un hombre corriendo. Grabe una película de usted corriendo desde la perspectiva de sus ojos, y estudie.

Stefan Majewsky
fuente
2
Eso realmente no funciona, ya que su imagen es la perspectiva. Necesitaría diferentes imágenes para jugar como animación.
Bobby