Grid detection system
· Feb 13, 2006, 4:45 PM
#19570
Ovako, sistem je prilicno jednostavan ali mozda tezak za objasnit.
Uzmemo ciju mapu i na nju "nacrtamo" gridove sto znaci da horizontalno i vertikalno pozicioniramo kvadrate npr velicine 128x128.
Evo napravit cu primjer sa Mecima, znaci umjesto da svaki zombi gleda svali metak ako je u dodiru s njim (cpu killer) svaki metak ce u svom frejmu pogledati iznad kojeg grida se nalazi i u njegov .Tag ce zapisati value tj. ID metka (ID = trenutacni Loop od metka).
Npr. metak #37 se nalazi iznad grida 4x8 (a to je 512x1024), zapise svoj id u taj grid i kada se npr. zombi broj 288 nadje iznad tog grida, sve sto treba zombiju da zna da je metak 37 blizu je da provjeri .Tag od grida na kojem se nalazi.
Samo onda kada zombi vidi da je metak blizu - zombi napravi detekciju kolizije izmedju tog metka i sebe.
Ovaj sistem je po nekoj racunici 97% brzi od prijasnjih sistema koje sam koristio u igrama. Zbog toga mozemo slobodno imati 5 zilijona metaka na ekranu i necemo ni frejm izgubiti, kao da metaka ni nema. Normalno, frejmovi padaju samo na onom djelu gdje se ti meci crtaju na ekran ali opet se ne crtaju svi nego samo oni on-screen.
Pre duboko sam se zaletio u sistem optimizacije, uglavnom ovo je strava stvar koju TREBA primjenjivati u svim buducim projektima koje budemo raditi .
Uzmemo ciju mapu i na nju "nacrtamo" gridove sto znaci da horizontalno i vertikalno pozicioniramo kvadrate npr velicine 128x128.
Evo napravit cu primjer sa Mecima, znaci umjesto da svaki zombi gleda svali metak ako je u dodiru s njim (cpu killer) svaki metak ce u svom frejmu pogledati iznad kojeg grida se nalazi i u njegov .Tag ce zapisati value tj. ID metka (ID = trenutacni Loop od metka).
Npr. metak #37 se nalazi iznad grida 4x8 (a to je 512x1024), zapise svoj id u taj grid i kada se npr. zombi broj 288 nadje iznad tog grida, sve sto treba zombiju da zna da je metak 37 blizu je da provjeri .Tag od grida na kojem se nalazi.
Samo onda kada zombi vidi da je metak blizu - zombi napravi detekciju kolizije izmedju tog metka i sebe.
Ovaj sistem je po nekoj racunici 97% brzi od prijasnjih sistema koje sam koristio u igrama. Zbog toga mozemo slobodno imati 5 zilijona metaka na ekranu i necemo ni frejm izgubiti, kao da metaka ni nema. Normalno, frejmovi padaju samo na onom djelu gdje se ti meci crtaju na ekran ali opet se ne crtaju svi nego samo oni on-screen.
Pre duboko sam se zaletio u sistem optimizacije, uglavnom ovo je strava stvar koju TREBA primjenjivati u svim buducim projektima koje budemo raditi .

