[Allegro 5]Problem z wyświetlaniem grafiki
Ostatnio zmodyfikowano 2014-06-21 21:09
SeaMonster131 |
» 2014-06-21 13:22:18 A do czego ci ten ekran jest potrzebny hm? Normalnie wyświetlasz: class CObj { ALLEGRO_BITMAP * IMG; CObj() { IMG = al_load_bitmap(..); } void draw() { al_draw_bitmap( IMG,..); } };
Ważne tylko, żeby wywoływać al_load_bitmap() itp. po użyciu al_init_image_addon(). |
|
Loodwin Temat założony przez niniejszego użytkownika |
» 2014-06-21 13:26:49 No właśnie robię tak samo, ale nadal pojawia się okienko, że program przestał działać. Może wstawię cały kod, może okaże się, że jakiś błąd robię gdzie indziej: #include <allegro5/allegro.h> class ship { private: float x, y; int v; ALLEGRO_BITMAP * graphic; public: ship(); void draw() { al_draw_bitmap( graphic, x, y, NULL ); } void move( int mx, int my ) { if( mx > x ) x += v; if( mx < x ) x -=( 0.75 * v ); if( my > y ) y +=( 0.8 * v ); if( my < y ) y -=( 0.8 * v ); } };
ship::ship() { x = 200; y = 200; graphic = al_load_bitmap( "graphic/ship.bmp" ); }
int main() { al_init(); al_install_mouse(); al_install_keyboard(); ALLEGRO_MOUSE_STATE mouse_state; ALLEGRO_KEYBOARD_STATE key_state; ALLEGRO_DISPLAY * display; display = al_create_display( 640, 480 ); al_set_window_title( display, "It's flying!" ); ship statek; while( !al_key_down( & key_state, ALLEGRO_KEY_ESCAPE ) ) { al_get_keyboard_state( & key_state ); al_get_mouse_state( & mouse_state ); al_set_target_backbuffer( display ); al_clear_to_color( al_map_rgb( 255, 255, 255 ) ); statek.move( mouse_state.x, mouse_state.y ); statek.draw(); al_flip_display(); } return 0; }
|
|
SeaMonster131 |
» 2014-06-21 14:13:51 Ważne tylko, żeby wywoływać al_load_bitmap() itp. po użyciu al_init_image_addon(). |
Linijka al_set_target_backbuffer( display ); jest zbędna. |
|
Loodwin Temat założony przez niniejszego użytkownika |
» 2014-06-21 14:20:56 Narazie nie mogę sprawdzić czy zadziała, bo musiałem wyjść z domu (piszę z telefonu), ale myślę, że to co napisałeś ma sens. W każdym kodzie jaki widziałem sprawdzane było czy udało się załadować plik, a ja zawsze to ignorowałem. Jeśli okaże się, że to o to chodziło to będę miał nauczkę. |
|
Loodwin Temat założony przez niniejszego użytkownika |
» 2014-06-21 21:09:17 Dzięki bardzo SeaMonster. Zadziałało dodanie najpierw #include <allegro5/allegro_image.h> a później al_init_image_addon(); Problem rozwiązany, temat zamykam. |
|
1 « 2 » |