eBbi Temat założony przez niniejszego użytkownika |
[Allegro] Bufor nie ładuje » 2009-07-08 20:46:23 Mam mały problem. Chce zrobić taką mała mapkę pod próby na kolizje itp. Napisałem kod który nie wywala żadnego błędu i wszystko wydaje się być okey. A jednak bufor odmawia współpracy. Na google nie szukałem bo nie wiem pod czym ^^. W linkach jest spakowana całość w paczkę z grafa <1mb. http://hotfile.com/dl/8197931/f01a12d/Symulator.rar.htmllub http://rapidshare.com/files/253495325/Symulator.rar.htmla tu jest osobno kod: #include <allegro.h>
BITMAP * bufor = NULL; BITMAP * tks_1 = NULL; BITMAP * mdl_1 = NULL; inline void buforowanie( BITMAP * a, int x, int y ); void mapa();
int main() { int depth, res; allegro_init(); depth = desktop_color_depth(); if( depth == 0 ) depth = 32; set_color_depth( depth ); res = set_gfx_mode( GFX_AUTODETECT_WINDOWED, 640, 480, 0, 0 ); if( res != 0 ) { allegro_message( allegro_error ); exit( - 1 ); } install_timer(); install_keyboard(); install_mouse(); bufor = create_bitmap( 640, 480 ); if( !bufor ) { set_gfx_mode( GFX_TEXT, 0, 0, 0, 0 ); allegro_message( "Nie mogę utworzyć bufora !" ); allegro_exit(); } tks_1 = load_pcx( "graf\\tekstury\\trawa2.pcx", default_palette ); mdl_1 = load_pcx( "graf\\modele\\ludek\\ludek_tyl.pcx", default_palette ); while( !key[ KEY_ESC ] ) { blit( bufor, screen, 0, 0, 0, 0, 640, 480 ); } clear_keybuf(); allegro_exit(); } END_OF_MAIN()
inline void buforowanie( BITMAP * a, int x, int y ) { masked_blit( a, bufor, 0, 0, x, y, a->w, a->h ); }
void mapa() { for( int x = 0, y = 0; x < 600; ) { if(( x < 600 ) &&( y < 450 ) ) { buforowanie( tks_1, x, y ); x += 50; } if( x == 600 ) { masked_blit( tks_1, bufor, 10, 0, x, y, tks_1->w, tks_1->h ); x = 0; y += 50; } if( y == 450 ) { masked_blit( tks_1, bufor, 0, 20, x, y, tks_1->w, tks_1->h ); } if(( y == 450 ) &&( x == 600 ) ) break; }; }
EDIT: W tych if'ach ma końcu chodzi o to by dać tylko kawałek tekstury tam gdzie się nie zmieści. |
|
GoldWolf |
» 2009-07-08 20:57:53 Poszukaj na forum, o kolizjach i buforze było sporo już napisane. Przejrzy tematy Bibliotek na pewno znajdziesz to czego szukasz. |
|
eBbi Temat założony przez niniejszego użytkownika |
» 2009-07-08 21:00:50 no ale wniosłeś do tematu.. nie potrzebuje nic o kolizji mówiłem tylko że ta mapka będzie do prób na kolizje, a to że używam bufora świadczy chyba o tym że czytałem o nim, czyś nie? zawsze normalnie działał a teraz coś nie hula.
EDIT: No jak nawet Piotr wyszedł bez słowa to chyba znaczy o trudności błędu ;p, |
|
DejaVu |
» 2009-07-08 21:05:28 Tak patrzę w kod i widzę, że nic nie wyświetlasz generalnie na ekranie. Nie masz niczego co by się wykonywało w pętli głównej poza kopiowaniem bufora na ekran. Gdzie go wypełniasz? /edit: Tak wygląda Twoja pętla: while( !key[ KEY_ESC ] ) { blit( bufor, screen, 0, 0, 0, 0, 640, 480 ); }
|
|
eBbi Temat założony przez niniejszego użytkownika |
» 2009-07-08 21:10:31 nuż ale błąd!! napisać funkcje i ją nie wywołać!!. Ale i tak coś nie tak w tej funkcji(Zacina komputer).
EDIT: No tak samo wywołany jest bufor w waszym kursie. A tylko tyle pętli bo na razie chce zobaczyć czy w ogóle działa.
EDIT2: No już znalazłem błąd w tej funkcji i się zabieram za poprawe. |
|
DejaVu |
» 2009-07-08 21:14:10 Mimo wszystko przyczynę błędu już znasz dlaczego nic się nie wyświetlało. Co do dalszej analizy kodu jesteśmy bezradni bowiem nie wiemy co wywołujesz. Zresztą za mało szczegółów podałeś odnośnie tego błędu.
@Dante: Nie odsyłaj użytkowników do innych tematów żeby sobie poszukali tylko dawaj do nich linki. Jeśli Ci się nie chce lepiej nie zabierać wogóle głosu :) |
|
eBbi Temat założony przez niniejszego użytkownika |
» 2009-07-08 21:30:09 Działa :D!! wielkie dzięki Piotrze. Off-topic |
|
« 1 » |