Patzick Temat założony przez niniejszego użytkownika |
[Allegro] O kolizjach więcej » 2008-08-27 20:23:27 Chyba można odnieść wrażenie, że spamuję tematami, ale nie można zadawać dwóch pytań w jednym temacie, więc oto mój poważny problem: Jak wykrywać i przeciwdziałać kolizjom z obiektami na mapie. Nie chodzi mi tu o kolizję 2 bitmap(ludzików)tylko o coś wydajniejszego, żeby postać nie mogła wchodzić na dane fragmenty mapy. Niby można dla każdego elementu napisać funkcję ale to by było strasznie czasochłonne a na pewno istnieje lepsze rozwiązanie. W sumie to obszerny temat, ale nie mam pojęcia jak się za to zabrać, żeby nie pisać dla każdego elementu osobno, bo tych elementów na mapie mogą być setki. Dzięki za wypowiedzi :) |
|
lynx |
» 2008-08-27 23:13:14 Jeżeli chodzi o allegro to tutaj masz linka o kolizjach: http://www.easykoder.yoyo.pl/index.php?mm=kol
A co do kolizji z obiektami (np. przeszkodami) to proponuję zastosować siatkę. A wogóle, kto powiedział, że programowanie nie jest czasochłonne? |
|
Patzick Temat założony przez niniejszego użytkownika |
» 2008-08-28 00:39:44 o tej kolizji to wiem, pisałem, że nie o nią chodzi :) Nikt nie powiedział, że nie jest czasochłonne ale na pewno ktoś wymyślił jak zrobić kolizję dla wielu elementów naraz a nie każdego oddzielnie. Możesz podać przykład takiej siatki? Chodzi, żeby na niektóre kafelki mapy ludzik nie mógł po prostu wchodzić i to by było świetne rozwiązanie. |
|
DeBugger |
Odpowiedź. » 2008-08-28 10:51:55 Np. Bitmapy jeden z którymi się zderzasz(1, 2, 3): int colob; BITMAP * 1; BITMAP * 2; BITMAP * 3; BITMAP * 4; BITMAP * 5;
1 = colob; 2 = colob; 3 = colob;
|
|
Patzick Temat założony przez niniejszego użytkownika |
» 2008-08-28 15:37:59 no ok, ale skoro ludek stoi w miejscu i przesuwa się tylko mapa, to jak napisać kolizję dla (jak już trzeba) każdego osobnego elementu? Bo kafelki mapy na które można wchodzić i na które nie można ładowane są z 1 pliku .bmp więc nie trzeba niby ładować tylu map ale jak to napisać, żeby na te akurat nie mógł wchodzić a na te mógł? |
|
Patzick Temat założony przez niniejszego użytkownika |
» 2008-08-31 13:56:10 z racji tego, że minęło już trochę dni od ostatniego postu postaram się jeszcze raz rozwiązać ten zaiste trudny problem :P więc wymodziłem coś takiego
if (blit(teren,bufor,60,0,300,210,30,30) && key[KEY_DOWN]) {/*przeciwdziałanie*/};
po próbie skompilowania okazało się to niemożliwe :P w sumie nic dziwnego, bo blit rysuje. Więc tu pytanie które powinno rozwiązać ten problem- jak brzmi polecenie podobne do getpixel() , które sprawdza czy dany kawałek bitmapy 30x30 znajduje się w punkcie 300/210? Mam nadzieję, że teraz jednak ktoś odpowie...:) |
|
lynx |
» 2008-08-31 21:25:43 Ja bym Ci radził samemu wymyślić algorytm, bo nie wiadomo czy wogóle istnieje taka funkcja, wystarczy tylko pomyśleć głową. A w końcu nikt za Ciebie prograu nie napisze. |
|
DejaVu |
» 2008-09-02 12:33:29 |
|
« 1 » 2 3 |