Autor Wątek: Kolizje 2d w c++  (Przeczytany 2173 razy)

Offline Ufos

  • Użytkownik

# Kwiecień 08, 2007, 15:48:07
Od pewnego czasu zastanawilem sie nad dobrym i latwym sposobem wykrywania kolizji kuli ze sciana.
Wymyslilem pewien sposob ale nie wiem czy jest on zbyt dobry i chcialbym posluchac waszych opini na ten temat to moze cos poprawie.
Postanowilem najpierw zrobic siatke w postaci tablicy dwuwymiarowej i na niej sprawdzac kolizje.
int Swiat[800][600];teraz zmiennymi x i y oznacze miejsce kuli i w tym miejscu w ktorym jest kula(o wielkosci 1x1)element tablicy bedzie rowny 1
cos takiego:
Swiat[x][y] = 1;Zaluzmy ze sciana jest wielkosci 15x15 czyli kolizje sprawdze tak:
for(int kox=0;kox<16;kox++){
for(int koy=0;koy<16;koy++){
if(swiat[150+kox][105+koy] == 1){    //150 i 105 to wspolzedne sciany oczywiscie pozniej to rozbuduje zeby program sam znajdowal te sciany ale dla przykladu tak jest najlatwiej pokazac
KulaStop();
for(int ux=0;ux<800;ux++){
for(int uy=0;uy<600;uy++){
swiat[ux][uy] = 0;}}}}}
i oczywscie na koncu msuze oczyscic tablice.
Co myslicie o tym sposobie?

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline maro

  • Użytkownik

# Kwiecień 08, 2007, 16:17:14
Czyli probujesz robic cos w rodzaju maski.
Sposob jest pewnie niezawodny. Ale wyobraz sobie, ze ten kod jest wykonywany kilkadziesiat razy na sekunde, i to dla wielu kul i scian...