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

SFML, sprawdzanie kolizji dla wielu obiektów

Object Storage Arubacloud
0 głosów
736 wizyt
pytanie zadane 28 grudnia 2016 w C i C++ przez prownnie Początkujący (280 p.)

Witam, ostatnio bawiłem się trochę SFML'em i napisałem podstawy do platformówki, czyli menu, jakieś tam kolizje i ruch postaci.

Sprawdzanie kolizji wygląda tak:
1. Określenie przemieszczenia, które ma się wykonać.

2. Sprawdzenie, czy po przemieszczeniu obiekt nie będzie kolidować ze ścianą.

3. Jeśli obiekt nie koliduje ze ścianą, to następuje ruch.

I na razie w punkcie drugim sprawdzam kolizje tylko dla obiektu klasy Player. Ale chciałbym dodać również inne obiekty, boty. Jak powinienem sprawdzać te kolizje, aby było elegancko? Napisać polimorficznie klasę obiekt, która będzie wskazywać po kolei, w pętli na obiekty klasy: gracz, bot1, bot2, bot3 i sprawdzać je po kolei?

Jak to zapisać? Przykładowo, sprawdzanie, dla wielu obiektów, czy nastąpiła kolizja, powinno wyglądać jakoś tak?

Jak stworzyć tablicę wielu obiektów z różnych klas?

for (int i=0;i<ilosc_obiektow;i++)
{
obiekt=&tablica[i];

if (kolizja==true)

obiekt->stop();

}

Czy może istnieje jakiś lepszy sposób?

1 odpowiedź

0 głosów
odpowiedź 28 grudnia 2016 przez Pajdas Mądrala (5,930 p.)
Boty i gracz mogą dziedziczyć z jednej klasy i w takim przypadku będziesz sprawdzać kolizję botów tak, jak samego gracza.

Zauważ, że idąc w prawo możesz kolidować tylko z lewymi ścianami, a idąc w lewo - z prawymi.
Takie rozdzielenie może zwiększyć wydajność, ale musisz to mądrze zakodować.

Dobrze też aby sprawdzanie kolizji było kilkupoziomowe bo sprawdzanie kolizji wszystkich obiektów ze wszystkimi jest trochę nie wydajne.

Podobne pytania

0 głosów
1 odpowiedź 284 wizyt
pytanie zadane 9 lutego 2018 w Nasze projekty przez thryndl Nałogowiec (30,470 p.)
0 głosów
3 odpowiedzi 836 wizyt
pytanie zadane 8 czerwca 2016 w C i C++ przez Kyoya Początkujący (260 p.)
0 głosów
0 odpowiedzi 247 wizyt
pytanie zadane 19 czerwca 2022 w C i C++ przez hicodyn Początkujący (420 p.)

92,551 zapytań

141,393 odpowiedzi

319,523 komentarzy

61,936 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!

...