Soy desarrollador web y estoy ansioso por comenzar a escribir mis propios juegos.
Por familiaridad, he elegido JavaScript y canvas
elemento por ahora.
Quiero generar un terreno como ese en Scorched Earth.
Mi primer intento me hizo darme cuenta de que no podía simplemente aleatorizar el y
valor; tenía que haber algo de cordura en los picos y los canales.
He buscado en Google un poco, pero o no puedo encontrar algo lo suficientemente simple para mí o estoy usando las palabras clave incorrectas.
¿Puede mostrarme qué tipo de algoritmo usaría para generar algo en el ejemplo, teniendo en cuenta que soy completamente nuevo en la programación de juegos (desde que hice Breakout en 2003 con Visual Basic de todos modos)?
¿Qué tal usar el algoritmo de desplazamiento del punto medio posiblemente seguido de un ligero suavizado, por ejemplo, filtrado de paso bajo para eliminar picos demasiado afilados? Este enfoque no es el mismo que en Scorched Earth, pero debería proporcionar resultados similares.
Creo que Scorched Earth simuló de alguna manera la gravedad y la caída de tierra. Por ejemplo, no puede tener una colina demasiado empinada porque, de lo contrario, la tierra se caería y crearía una pendiente menos empinada.
fuente
Hay otro enfoque que puede usar. Puede agregar varias ondas sinusoidales generadas aleatoriamente y luego escalar el resultado para que se ajuste a su pantalla. Es realmente fácil en la práctica y produce algunos buenos resultados, aunque más suave y quizás más artificial que su captura de pantalla de ejemplo.
Puedes ver la fuente en javascript aquí. Es realmente fácil jugar con algunos parámetros para obtener diferentes tipos de terreno.
https://github.com/fmstephe/Tankwars
fuente