Estoy trabajando en un juego, y he encontrado un problema bastante interesante: formas inteligentes de dibujar campos estelares.Maneras ingeniosas de dibujar un campo estelar
Es un juego en 2D, por lo que la acción puede desplazarse en las direcciones X e Y. Además, podemos ajustar la escala para mostrar más o menos el área de juego. También me gustaría que el campo de estrellas tenga paralaje falso para dar una impresión de profundidad.
En este momento estoy haciendo esto de la manera tradicional, al tener una gran variedad de estrellas, cada una de las cuales está etiquetada por un factor de "profundidad". Para dibujar, traduzco cada estrella según la posición de la cámara multiplicada por la "profundidad", por lo que algunas estrellas se mueven mucho y algunas se mueven un poco. Todo esto funciona bien, pero, por supuesto, dado que tengo un número finito de estrellas en mi matriz, tengo problemas cuando la cámara se mueve demasiado o se aleja demasiado. Esto es todo lo que funcionará, pero implica un montón de código y casos especiales.
Esto ofende mi sentido de la elegancia. Habrá una mejor manera de lograr esto.
He considerado procesar mis estrellas, lo que me permite tener un número ilimitado: p. usando una semilla fija y un PRNG para determinar las coordenadas. Tendría que dividir el cielo en mosaicos, generar la semilla mezclando las coordenadas del mosaico y dibujar, digamos, 100 estrellas por ficha. Esto me permite ampliar mi campo de estrellas indefinidamente en todas las direcciones sin tener que considerar las fichas visibles, pero esto no funciona con el factor de "profundidad", ya que permite que las estrellas se desvíen fuera de su casilla. Simplemente podría usar múltiples campos estelares sin paralaje usando este algoritmo, pero esto me parece una trampa.
Y, por supuesto, tengo que hacer todo esto en cada fotograma, así que tiene que ser rápido.
¿Qué es lo que todos ustedes creen?
Pruebe http://gamedev.stackexchange.com, pueden tener más experiencia con tales problemas. –
Ni siquiera sabía que existía; ejército de reserva. Cualquier administrador, siéntase libre de mover la pregunta allí ... –
Cualquier solución que se le ocurra, si necesita más rendimiento, convierta su código para usar números enteros de punto fijo en lugar de números de coma flotante. – user499211