• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Kolizje obiektów - tworzenie gier

Object Storage Arubacloud
0 głosów
847 wizyt
pytanie zadane 8 czerwca 2016 w C i C++ przez Kyoya Początkujący (260 p.)
Witam. Głowię się już od jakiegoś czasu nad kolizjami pomiędzy obiektami. Co nieco już wymyśliłem, ale liczę na jakieś naprowadzenie na odpowiedni kierunek ze strony osób, które siedzą w game-dev'ie trochę dłużej ode mnie. Otóż w moim projekcie wszystko co jest renderowane dziedziczy z klasy obiekt. Obecnie stanąłem przed problemem zaimplementowania kolizji. Konceptualnie rozumiem wszystkie mechanizmy jakie powinny zachodzić podczas kolizji, aczkolwiek nie jestem pewien jak się do tego zabrać. Jak na razie wpadłem na pomysł porównywania pozycji między każdym z obiektów, ale.. to rozwiązanie wydaje mi się strasznie nieoptymalne. W końcu jeśli obiektów będzie 1000 i tak dalej.. W każdym bądź razie cały problem dotyczy przestrzeni 2D. Jeżeli zmierzyliście się już z tego typu problemem to liczę na Waszą pomoc. Pozdrawiam. :)

3 odpowiedzi

0 głosów
odpowiedź 8 czerwca 2016 przez MetRiko Nałogowiec (37,110 p.)
Kolizja w grach.. temat rzeka.. Mówiąc najprościej musisz ustalić czym jest jaki obiekt kolidujący.. tzn.. dla nieruchomych obiektów rozmieszczonych po siatce może być zastosowana zupełnie inna kolizja niż w przypadku tych ruchomych.. też inaczej sprawa wygląda jeżeli masz do czynienia z małą ilością obiektów, a kiedy z setkami, czy tysiącami #Japońskie_shootery_xD Też inaczej sprawa wygląda jeżeli chcesz dodać jakąś bardziej skomplikowaną fizykę.
Mówiąc najprościej przeanalizuj sobie jakiego typu system kolizji będzie najlepszy.
A tutaj trochę haseł które warto wpisać w google:
Quadtree
Array collision
Collision detection algorithms
Box2D (biblioteka do fizyki)
Collision optimize
0 głosów
odpowiedź 27 kwietnia 2019 przez Pytam_PL Użytkownik (520 p.)
Teraz wpadłem na pomysł, przemyśl go! Przy renderowaniu każdej klatki tworzysz tablicę dwuwymiarową, każdy obiekt "rysujesz" na tablicy. Jeśli przy "rysowaniu" trafisz na zarysowane pole to porównujesz parametry obydwu obiektów. Pomyśl co można zoptymalizować.
0 głosów
odpowiedź 27 kwietnia 2019 przez Rzepek Bywalec (2,050 p.)
W niektórych przypadkach dobrym rozwiązaniem jest sprawdzenie kolizji obiektu tylko gdy się on poruszy.

Podobne pytania

0 głosów
1 odpowiedź 199 wizyt
pytanie zadane 27 kwietnia 2019 w C# przez Pytam_PL Użytkownik (520 p.)
0 głosów
0 odpowiedzi 255 wizyt
pytanie zadane 19 czerwca 2022 w C i C++ przez hicodyn Początkujący (420 p.)
0 głosów
0 odpowiedzi 110 wizyt
pytanie zadane 6 września 2020 w C i C++ przez NieMaJuzNazw Użytkownik (890 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...