Gaatt Temat założony przez niniejszego użytkownika |
» 2012-03-20 20:09:14 Nie umiem przekazać bitmapy do funkcji. W projekcie mam 3 pliki: main, z funkcjami oraz header. Czy mógłbym prosić o pomoc w napisaniu wywołania, parametrów oraz prototypu funkcji? Z pomoc z góry dziękuję.
@EDIT Metodą prób i błędów udało się. |
|
jankowalski25 |
» 2012-03-20 21:00:42 Możesz zamieścić swoje rozwiązanie dla innych. |
|
Gaatt Temat założony przez niniejszego użytkownika |
» 2012-03-21 15:25:45 Udało mi się tylko przekazać bitmapę do funkcji (zamieszczam kod całego programu). Postępowałem wedle waszych zaleceń, jednak problem nie jest rozwiązany (sam też wprowadziłem zmiany). Kod przechowuję w 3 plikach, jednak tu zamieszczę go razem (nie ma to znaczenia). Może mam zamieścić w internecie pliki mojej aplikacji, które pozwoliłoby zweryfikować problem. Oto kod: #include "allegro5/allegro.h" #include "allegro5/allegro_image.h" #include <allegro5/allegro_native_dialog.h>
int Menu( ALLEGRO_BITMAP * menu, ALLEGRO_BITMAP * czolgMenu0, ALLEGRO_BITMAP * czolgMenu1, ALLEGRO_BITMAP * czolgMenu2, ALLEGRO_BITMAP * czolgMenu3, ALLEGRO_EVENT_QUEUE * event_queue );
int main( int argc, char ** argv ) { ALLEGRO_DISPLAY * display = NULL; al_init(); al_init_image_addon(); al_install_keyboard(); display = al_create_display( 838, 638 ); ALLEGRO_EVENT_QUEUE * event_queue = NULL; event_queue = al_create_event_queue(); al_register_event_source( event_queue, al_get_display_event_source( display ) ); al_register_event_source( event_queue, al_get_keyboard_event_source() ); ALLEGRO_BITMAP * menu = NULL; menu = al_load_bitmap( "menu.bmp" ); ALLEGRO_BITMAP * czolgMenu0 = NULL; ALLEGRO_BITMAP * czolgMenu1 = NULL; ALLEGRO_BITMAP * czolgMenu2 = NULL; ALLEGRO_BITMAP * czolgMenu3 = NULL; czolgMenu0 = al_load_bitmap( "czolgMenu0.bmp" ); czolgMenu1 = al_load_bitmap( "czolgMenu1.bmp" ); czolgMenu2 = al_load_bitmap( "czolgMenu2.bmp" ); czolgMenu3 = al_load_bitmap( "czolgMenu3.bmp" ); al_convert_mask_to_alpha( czolgMenu0, al_map_rgb( 255, 0, 255 ) ); al_convert_mask_to_alpha( czolgMenu1, al_map_rgb( 255, 0, 255 ) ); al_convert_mask_to_alpha( czolgMenu2, al_map_rgb( 255, 0, 255 ) ); al_convert_mask_to_alpha( czolgMenu3, al_map_rgb( 255, 0, 255 ) ); bool wyjscie = false; int wyborMenu; while( !wyjscie ) { wyborMenu = Menu( menu, czolgMenu0, czolgMenu1, czolgMenu2, czolgMenu3, event_queue ); switch( wyborMenu ) { default: wyjscie = true; } } al_destroy_bitmap( menu ); al_destroy_bitmap( czolgMenu0 ); al_destroy_bitmap( czolgMenu1 ); al_destroy_bitmap( czolgMenu2 ); al_destroy_bitmap( czolgMenu3 ); al_destroy_event_queue( event_queue ); al_destroy_display( display ); return 0; }
int Menu( ALLEGRO_BITMAP * menu, ALLEGRO_BITMAP * czolgMenu0, ALLEGRO_BITMAP * czolgMenu1, ALLEGRO_BITMAP * czolgMenu2, ALLEGRO_BITMAP * czolgMenu3, ALLEGRO_EVENT_QUEUE * event_queue ) { bool koniec = false; bool rysuj = false; int wyborMenu = 0; al_draw_bitmap( menu, 0, 0, NULL ); al_draw_bitmap( czolgMenu0, 50, wyborMenu * 70 + 212, 0 ); al_flip_display(); while( !koniec ) { ALLEGRO_EVENT ev; al_wait_for_event( event_queue, & ev ); if( ev.type == ALLEGRO_EVENT_KEY_DOWN ) { switch( ev.keyboard.keycode ) { case ALLEGRO_KEY_UP: { if( wyborMenu == 0 ) wyborMenu = 4; else wyborMenu--; if( wyborMenu == 3 ) wyborMenu--; break; } case ALLEGRO_KEY_DOWN: { if( wyborMenu == 4 ) wyborMenu = 0; else wyborMenu++; if( wyborMenu == 3 ) wyborMenu++; break; } case ALLEGRO_KEY_SPACE: { koniec = true; break; } } } al_draw_bitmap( menu, 0, 0, NULL ); al_draw_bitmap( czolgMenu0, 50, wyborMenu * 70 + 212, NULL ); al_flip_display(); } al_draw_bitmap( czolgMenu1, 50, wyborMenu * 70 + 212, 0 ); al_rest( 0.1 ); al_flip_display(); al_draw_bitmap( czolgMenu2, 50, wyborMenu * 70 + 212, 0 ); al_rest( 0.1 ); al_flip_display(); al_draw_bitmap( czolgMenu3, 50, wyborMenu * 70 + 212, 0 ); al_rest( 0.1 ); al_flip_display(); al_rest( 0.5 ); return wyborMenu; }
|
|
Gaatt Temat założony przez niniejszego użytkownika |
» 2012-03-21 23:03:24 |
|
Gaatt Temat założony przez niniejszego użytkownika |
» 2012-03-22 20:58:33 Ktoś coś wymyślił? Ja tylko zauważyłem, że po wyłączeniu konsoli działa nieco lepiej.
|
|
Gaatt Temat założony przez niniejszego użytkownika |
» 2012-03-24 23:58:57 Okazuje się, że to tylko u mnie nie działa. Na każdym innym komputerze jest wszytko tak jak powinno. Ma ktoś pomysł dlaczego? |
|
1 « 2 » |