radmack Temat założony przez niniejszego użytkownika |
» 2011-12-17 12:38:28 Ponawiam prośbę o pomoc w ustaleniu problemu przy kolizjach. |
|
m4tx |
» 2011-12-17 15:59:59 Nie bumpuj tematu! Od twojego ostatniego posta minęło trochę ponad godzinę, nikt 24/7 nie siedzi na forum i nie pomaga od razu -.- |
|
pekfos |
» 2011-12-17 16:26:35 pętla{ sprawdzasz kolizje renderujesz mapę kolizji czyścisz mapę kolizji } |
|
radmack Temat założony przez niniejszego użytkownika |
» 2011-12-17 17:02:12 m4tx spójrz na daty najpierw i potem próbuj po mnie jechać, jeśli będzie to słuszne. Przedostatni post został przeze mnie napisany prawie 5 dni temu. if(getpixel(bufor, ludek_x, ludek_y)==makecol(255,255,255)) Tym sposobem sprawdzam kolizje, a jednak nie działają. Znam teorię, wydaje mi się, że to, co napisałem, powinno dobrze działać, a jednak męczę się z tym już tydzień. Wyodrębniłem kolizje do osobnego, eksperymentalnego pliku i tam też nie działają. Załączam ten plik, tym razem bardzo mało kodu. Bardzo proszę o dokładne przeanalizowanie kodu i powiedzenie mi, co jest nie tak, skoro nawet tak prosty przykład nie działa. http://www.fileserve.com/file/SAg5qHf/proba.rar |
|
akwes |
» 2011-12-17 17:07:11 if(getpixel(bufor, ludek_x, ludek_y)==makecol(255,255,255))
sprawdzasz czy dany piksel jest biały. Jeżeli to z czym ma kolidować jest białe, to ok. A Jeśli nie jest no to zrobiłeś to źle.
//fixed |
|
pekfos |
» 2011-12-17 17:31:17 if(getpixel(bufor, ludek_x, ludek_y)==makecol(255,255,255))
sprawdzasz czy dany piksel jest czarny |
raczej biały ;] |
|
akwes |
» 2011-12-17 17:36:11 no ;p wiedziałem że jedno z dwóch a nie chciało mi się sprawdzać :P
poprawione :P |
|
pekfos |
» 2011-12-17 17:59:14 Autorze tematu! wywal lokalne ludek_x i ludek_y z main(). Przesłaniają one te współrzędne które są używane w kolizjach.. W rezultacie: chodzisz bez kolizji bo są sprawdzane wciąż w tym samym miejscu (na środku ekranu). //edit: #include <allegro.h>
int ludek_x =( SCREEN_W / 2 ) - 12; int ludek_y =( SCREEN_H / 2 ) - 32;
int main() { int ludek_x =( SCREEN_W / 2 ) -( ludek->w / 2 ); int ludek_y =( SCREEN_H / 2 ) -( ludek->h / 2 ); } END_OF_MAIN(); |
|
1 « 2 » 3 |