Tengo un mapa de colisión, y algunos lugares que quiero que sean fuentes de luz. La fuente de luz proporciona luz que en realidad es una forma en la que puedo ver el suelo. Ahora parece que esto:Iluminación 2D: hacer que la luz no entre en la pared
Así que la luz pasa a través de las paredes. Quiero que se vea como esto:
(I marcó el colisiones con las paredes con color amarillo oscuro)
Así que los rayos de luz de freno cuando se reunió la pared. Quiero obtener la forma de la luz correcta, lo mejor sería un mapa de bits que la contenga)
Mi primera idea fue lanzar rayos desde la fuente y verificar cuando colisionan con la pared (sé cómo hacerlo), pero entonces tendría que lanzar rayos cada 0.001 grados por ejemplo, así que es demasiado tiempo para generar luces. Lo siguiente es que la forma de la luz no siempre es un círculo, a veces puede ser elipse o semielipse, incluso un triángulo o parte del círculo. En general, tengo el mapa de bits con luz que no colisiona con nada, y quiero restarlo un poco para que se vea como en la segunda imagen.
Y lo último, estoy usando allegro 4.2.1, pero todos los mapas de bits mencionados anteriormente son matrices de 2 dimmension con 0 y 1.
Gracias por cualquier ayuda, perdón por la pregunta larga y mi mal inglés.
¿Puedes usar el hecho de que la sombra creada por un obstáculo de línea recta va a ser un sector? Comience con su luz circular, con un radio que depende de la intensidad, y luego dibuje un trapecio en el color inverso para cada obstáculo. –
hm, ¿puedes explicarlo un poco más? –