Ho una mappa di collisione e alcuni posti che voglio essere fonti di luce. La fonte di luce fornisce una luce che è in realtà una forma in cui posso vedere il terreno. E ora si presenta così:Illuminazione 2D: non far passare la luce attraverso il muro
Così la luce passa attraverso le pareti. Voglio far sembrare questo:
(ho segnato le collisioni con le pareti di giallo scuro)
Così i raggi di luce di arresto quando incontro il muro. Voglio ottenere la forma della luce corretta, la migliore sarebbe la bitmap che la contiene)
La mia prima idea è stata lanciare raggi dalla sorgente e controllare quando si scontrano con il muro (so come farlo), ma poi avrei bisogno di lanciare ray ogni 0,001 gradi per esempio, quindi è troppo tempo per generare luci. La prossima cosa è che la forma della luce non è sempre un cerchio, a volte può essere un'ellisse o mezza ellisse, persino un triangolo o una parte del cerchio. Generalmente, ho la bitmap con la luce che non collide nulla, e voglio sottrarla un po 'per farla sembrare sulla seconda immagine.
E l'ultima cosa, sto usando allegro 4.2.1, ma tutti i bitmap precedentemente menzionati sono array a 2 dimmension con 0 e 1.
Grazie per qualsiasi aiuto, mi dispiace per la lunga domanda e il mio cattivo inglese.
Puoi usare il fatto che l'ombra creata da un ostacolo in linea retta diventerà un settore? Inizia con la tua luce circolare, con raggio a seconda dell'intensità, e quindi disegna un trapezio nel colore inverso per ogni ostacolo. –
hm, puoi spiegarlo un po 'di più? –