Wyciągnąłem płytki w mojej grze XNA i załadowałem moją postać. Moja postać jednak nie porusza się - mapa robi, co daje złudzenie ruchu. Teraz zastanawiam się, jak właściwie przetestować je przed kolizją. Chodzi mi o to, dokąd zmierza kod kolizyjny i jak sprawić, by wszystkie płytki stanowiły "jedną wielką rzecz"?Kolizja na bazie kafelków w XNA
Odpowiedz
Istnieje tutorial na temat pixel based collision detection w klubie XNA Creator. Musisz dowiedzieć się, na jakich obiektach chcesz wykryć kolizję. Chyba chcesz, aby postać poruszała się po wyłożonym kafelkami tle, więc nie chcesz sprawdzać kolizji między Twoją postacią a tłem. Zamiast tego powinieneś zrobić sprite'y z przeszkodami i na nich wykryć kolizje.
To wiem, ale ja nie wiem, jak przetestować kolizję na te przeszkody, ponieważ są to płytki ułożone przez pętlę for. – DMan
Nie jestem pewien, czy podążam. Nie ma znaczenia, jak narysujesz swoje tekstury. Musisz zidentyfikować tekstury, dla których chcesz wykonać wykrywanie kolizji i zastosować wykrywanie zgodnie z opisem w załączonym pliku .htm w przykładzie. –
Cóż, ponieważ rysuję każdą teksturę wiele razy, czy nie muszę stosować kolizji więcej niż raz? Jeśli tak, to gdzie mam to zrobić - podczas mojego kodu rysunkowego> – DMan
Możesz rzucić okiem na Platformer Starter Kit, pokazuje jak uporządkować kafelki na mapie i sprawdzić kolizje.
Zajrzałem tam, ale nie mogłem znaleźć tego pliku klasy, że zderzenie rzeczywiście miało miejsce ... – DMan
Możesz rzucić okiem na Nick Gravelyn's Tile Engine Tutorials, przechodzi przez cały proces tworzenia silnika kafelkowego. Dostępny jest link here, aby wyświetlić wszystkie samouczki w serwisie YouTube.
Prostokąty mają metodę przecięcia. Jeśli twój odtwarzacz jest wyśrodkowany i znasz współrzędne, przejrzyj inne texture2ds i sprawdź przecięcie przed przewinięciem mapy.
- 1. Sieci XNA na Windows
- 2. Używanie kafelków Fusion Table w pliku Leaflet.js lub w bazie danych innej niż Google?
- 3. Kolizja SKPhysicsBody nie działa
- 4. Umieszczanie XNA w WinForms
- 5. Kolizja MD5 dla znanego wejścia
- 6. Kolizja Irrlicht z niewidoczną siatką
- 7. Używanie niestandardowych kafelków obrazów mapy w LeafletJS?
- 8. Zmniejszanie rozmiaru Texture2D w XNA
- 9. Obracanie modelu 3D w XNA
- 10. Optymalny rozmiar kafelków tła CSS
- 11. Bardzo proste menu w XNA
- 12. wydajna ekstrakcja kafelków TIFF C++
- 13. Kontrolki XNA i GUI (np. Xaml i xna)
- 14. XNA - Symulowany śnieg
- 15. Testowanie urządzenia XNA
- 16. Silnik fizyki 3d XNA
- 17. Łączenie projektu zawartości (XNA) z projektem innym niż XNA
- 18. Kolizja i wielokąt kolizji z libgdxem
- 19. Najbardziej efektywny sposób na zapisywanie danych kafelków izometrycznej gry
- 20. XNA, bezpośredni X, OpenGL
- 21. Jint + XNA (C#)
- 22. niewłaściwa pozycja mapy kafelków po przekonwertowaniu na ekran siatkówki
- 23. Hashtable kolizja rehashing - jak czytać wartości?
- 24. Łatwe wyświetlanie kafelków OpenStreetMap dla Python
- 25. Użyj kafelków Bing Maps z ulotką
- 26. Przechowywanie pozwoleń na aplikacje w bazie danych
- 27. Podatki na bazie ról w woocommerce
- 28. Wyświetlanie prostokątów w oknie gry z XNA
- 29. XNA C# platformówka 2D Gra
- 30. Mechanizm blogowania na bazie Ruby
Czy mógłbyś trochę wyjaśnić sytuację? to znaczy. W jaki sposób korzystasz z mapy kafelków w grze? Czy postać zajmuje jedną płytkę lub kilka płytek (a la Tetris)? Czy przeszkody w grze zajmują wiele płytek? Jestem trochę zagubiony, ponieważ uważam, że wykrywanie kolizji byłoby prostą sprawą porównywania pozycji postaci z przeszkodami na mapie kafelków, a nie wykrywanie kolizji opartej na pikselach ... – Syndog