W mojej grze opartej na hałasie Perlin natknąłem się na pewne problemy. Spójrz na załączony zrzut ekranu poniżej.
Białe obszary, które widzisz, to ściany, a czarne obszary można chodzić pieszo. Trójkąt pośrodku to gracz.
Zaimplementowałem fizykę w tej grze, rysując ją na fakturze (białe lub czarne piksele), a następnie pobierając ją z procesora.
Jednak teraz mam inny problem. Chcę, aby jednostki (lub creepy, jakkolwiek je nazwiesz) stale pojawiały się na krawędzi ekranu. Chodzi o to, że w końcowej grze będzie „mgła wojny”, która i tak nie pozwoli graczowi zobaczyć tego tak daleko.
Uznałem, że mogę po prostu zeskanować piksele na krawędzi ekranu i sprawdzić, czy ich tekstura fizyki jest czarna, a następnie odradzać tam losowo rzeczy. Jeśli jednak spojrzysz na zrzut ekranu po raz drugi, w lewym górnym rogu znajduje się przykład, w którym nie chciałbym, aby stwory się pojawiały (ponieważ nie byłyby w stanie dotrzeć do gracza z tego miejsca) .
Czy w jakiś sposób GPU może ustalić te miejsca odrodzenia dla mnie, czy w inny sposób? Pomyślałem o stworzeniu wektorów między proponowanym punktem na brzegu ekranu a odtwarzaczem, a następnie podążaniu za nim co 10 wokseli i sprawdzeniu, czy ściana nie zderzy się, zanim pojawi się tam jednostka.
Jednak wyżej zaproponowane rozwiązanie może być zbyt obciążające procesor.
Wszelkie sugestie w tej sprawie?
Uwaga 1 W przypadku jednostek odradzających się, nie chcę używać żadnego rodzaju odnajdywania ścieżek, aby uniknąć kolizji na ścianie, gdy jednostki te biegną w kierunku gracza. Dlatego jednostki muszą się pojawiać na krawędzi ekranu, w miejscu, w którym chodzenie w linii prostej w kierunku gracza nie koliduje z żadnymi ścianami.