Rozwijam grę z terenem podobnym do Minecrafta zbudowanym z bloków. Ponieważ podstawowe renderowanie i ładowanie porcji jest już zakończone, chcę zaimplementować wybieranie bloków. Dlatego muszę dowiedzieć się, jaki blok stoi aparat pierwszej osoby. Słyszałem już o nieprojektowaniu całej sceny, ale zdecydowałem się tego nie robić, ponieważ brzmi to hack i …
Tworzę silnik terenowy podobny do MC i pomyślałem, że oświetlenie sprawi, że będzie wyglądać o wiele ładniej. Problem polega na tym, że bloki nie są odpowiednio oświetlone, gdy umieszczony jest blok emitujący światło (patrz zrzuty ekranu na dole) na stronie. Do tej pory chcę wdrożyć „blokowe” oświetlenie Minecrafta. Więc stworzyłem …
Chcę zrobić to, co opisano w tym temacie: http://www.allegro.cc/forums/print-thread/283220 Próbowałem różnych metod wymienionych tutaj. Najpierw próbowałem użyć metody opisanej przez Carrus85: Po prostu weź stosunek dwóch trójkątów przeciwprostokątnych (nie ma znaczenia, którego trójkąta użyjesz dla drugiego, sugeruję punkt 1 i punkt 2 jako obliczaną odległość). To da ci procent proporcji …
Chcę mieć oświetlenie 2D, które mogą być blokowane przez obiekty w grze. Moja gra ma widok z góry, a wszystkie obiekty w grze są opisane prostokątami. Powiedzmy, że mam świat 10x10 i umieszczam światło na 1x1 i ściany wokół tego światła. Chcę widzieć źródło światła na 1x1, ale nigdzie indziej, …
Zdarzenie Unity dotyczące kolizji daje ci obiekt kolizji, który daje pewne informacje na temat kolizji, która miała miejsce (w tym listę punktów kontaktowych z normalnymi trafieniami). Ale nie dostajesz normalnych powierzchni dla zderzacza, który trafiłeś. Oto zrzut ekranu do zilustrowania. Czerwona linia pochodzi z, ContactPoint.normala niebieska linia pochodzi z RaycastHit.normal. …
Jak obsłużyć funkcję „kliknij i przesuń” w pełnej przestrzeni 3D? Łatwo jest obsługiwać na płaszczyźnie 2D za pomocą prostego raycasta, ale nie jest tak w 3D, ponieważ nie ma płaszczyzny końcowej, aby raycast mógł uzyskać punkt końcowy. Mam na myśli dwa pomysły: Wykonaj raycast, a następnie pozwól graczowi wybrać odległość …
Pracuję nad Roguelike i do tego stworzyłem algorytm śledzenia pola widzenia (FoV), który polega na kreśleniu linii Bresenhama do każdego punktu w jednolitym okręgu. Jest wolny od artefaktów (i dość wydajny), ale brakuje mi ważnego wymogu mojego: symetrii (jeśli widzisz potwora, musi on także cię widzieć). Oto przykład niesymetrycznego zachowania …
Istnieją trzy fazy wykrywania kolizji. Broadphase : Pętla między wszystkimi obiektami, które mogą oddziaływać, dozwolone są fałszywe alarmy, jeśli przyspieszyłoby to zapętlenie. Narrowphase : Określa, czy się zderzają, a czasem, jak, nie ma fałszywych trafień Rozdzielczość : rozwiązuje kolizję. Pytanie, które zadaję, dotyczy wąskiej fazy. Istnieje wiele algorytmów różniących się …
Patrzę na ten problem od kilku dni. Przygotowałem tę grafikę, aby pomóc mi w wizualizacji problemu: (z wykresu wiemy, że linia przecina [1, 1], [1, 2], [2, 2], [2, 3], kończąc na [ 3,3]) Chcę przejść wzdłuż linii do każdej przestrzeni siatki i sprawdzić, czy materiał przestrzeni siatki jest solidny. …
Obecnie używam algorytmu liniowego Bresenhama dla linii wzroku. Problem polega na tym, że znalazłem przypadek, w którym gracze mogą patrzeć przez ściany. Występuje, gdy gracz patrzy między dwoma rogami ściany ze szczeliną po drugiej stronie pod określonymi kątami. Chcę, aby kafelek między dwiema ścianami został oznaczony jako nieprawidłowy. Jaki jest …
Rozważ siatkę 2d płytek i przybliżoną kulę współrzędnych - wyśrodkowaną na odtwarzaczu - która reprezentuje linię wzroku. Celem jest zablokowanie linii wzroku poza przeszkodami (np. Ścianami). Względnie proste jest ustalenie, czy widoczna jest pojedyncza komórka w polu widzenia: rzuć promień z gracza na komórkę docelową, używając Bresenhama - jeśli jedna …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.