Jak zaimplementować Worms style destructible terrain w XNA?
Chcę prototypować pomysł na grę, którą mam. Pomysł na tę grę polega na tym, że gracz będzie kopać przez ziemię, tworząc tunele i znajdując skarb.
Chcę stworzyć teren w stylu "worms", z wykrywaniem kolizji dla gracza wędrującego i skaczącego po tunelach. Przykłady tego typu dynamicznego terenu można zobaczyć na tych zdjęciach.
Moje pytanie brzmi jak najlepiej wdrożyć tego typu zniszczalny teren? Używam XNA game studio.
4 answers
Jest jakiś fajny kod na dole tego wątku. Ponadto, ten jest świetnym samouczkiem krok po kroku, jak osiągnąć destrukcyjny teren.
EDIT-oryginalny link do drugiego tutoriala został uszkodzony, więc połączyłem się z zarchiwizowaną wersją.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-06-19 21:24:02
Riemer ma podobne podejście do gry, którą opracował w XNA, pociski cannon spowodować teren być "zniszczone" i wszelkie rekwizyty, które były wcześniej na wspomnianym terenie są przenoszone odpowiednio.
To musi być refakturowane i ulepszone dla Twoich potrzeb, ale to jest początek.
Riemer ma dobry wybór samouczków do innych rzeczy też.
Http://www.riemers.net/eng/Tutorials/XNA/Csharp/Series2D/Adding_craters.php
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-01-18 01:36:09
Są dwie możliwości, jedna praca, ale od XNA zależy jak łatwo ją zaimplementować:
- jak inni sugerowali, maskowanie bitmap. Zachowujesz bitmapę wszystkich pikseli "naziemnych" i wszystkich pikseli "powietrznych". Jeśli masz grawitację; postać nie może spaść przez ziemię, podczas gdy może spaść przez powietrze.
- geometria wektorowa. Zaczynasz od prostokątnej "ziemi" i trzymasz listę" usuniętych " ziemi, która tworzy powietrze. Ta geometria jest bardzo prosta do edycji: wystarczy dołączyć okrąg lub podobne do listy i zaktualizuj grafikę. Nie wiem, czy XNA ma zdolności vector & shape;, ale powinno być łatwo stworzyć geometrię za pomocą tych dwóch rzeczy, a później zastosować teksturę lub podobną. Ponadto można to łatwo zoptymalizować, zachowując buforowaną wersję renderowanego krajobrazu i aktualizując tylko pamięć podręczną obwiedni nowo dodanego "powietrza". To rozwiązanie wymaga jednak nieco więcej matematyki.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-01-18 01:27:13
Oto dwa przykłady, które opierają się na sobie, jak to zrobić z shaderami pikseli w XNA 4. Oba przykłady obejmują sourrecode.
Http://www.syntaxwarriors.com/2012/xna-alpha-mapping-with-pixel-shaders/
Http://www.syntaxwarriors.com/2012/xna-alpha-mapping-with-pixel-shader-and-rendertarget2d/
Robienie tego z shaderami pikseli jest bardzo szybkie, ponieważ wszystkie ciężkie prace są wykonywane na gpu.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-07-16 07:15:13