Joda332 Temat założony przez niniejszego użytkownika |
[C++, Allegro 5] Fullscreen » 2014-08-26 14:59:02 Witam :) Jak ustawiam na Full screen to mi wywala program przestał działać. Taki kod #include <iostream> #include <allegro5/allegro.h> #include <allegro5/allegro_image.h> #include <allegro5/allegro_audio.h> #include <allegro5/allegro_acodec.h> #include <allegro5/allegro_font.h>
ALLEGRO_CONFIG * config; int vsync, fullscreen, frequency, rozm_x = 40, rozm_y = 80, txt_x, txt_y; double wys, szer;
static int option( ALLEGRO_CONFIG * config, char const * name, int v ) { char const * value; char str[ 256 ]; value = al_get_config_value( config, "settings", name ); if( value ) v = strtol( value, NULL, 0 ); al_set_config_value( config, "settings", name, str ); return v; }
int main() { al_init(); al_init_image_addon(); al_init_font_addon(); al_install_keyboard(); config = al_load_config_file( "Files/Setings/Display.ini" ); fullscreen = option( config, "fullscreen", 0 ); frequency = option( config, "frequency", 0 ); vsync = option( config, "vsync", 0 ); szer = option( config, "szer", 0 ); wys = option( config, "wys", 0 ); double skala_x = szer / 800, skala_y = wys / 600; ALLEGRO_KEYBOARD_STATE klawiatura; if( vsync ) al_set_new_display_option( ALLEGRO_VSYNC, vsync, ALLEGRO_SUGGEST ); if( frequency ) al_set_new_display_refresh_rate( frequency ); if( fullscreen ) al_set_new_display_flags( ALLEGRO_FULLSCREEN ); ALLEGRO_DISPLAY * okno = al_create_display( szer, wys ); al_set_window_title( okno, "Le giera se jest jaka jest ale jest bo lubi byæ D:" ); ALLEGRO_EVENT_QUEUE * event_queue = al_create_event_queue(); al_register_event_source( event_queue, al_get_display_event_source( okno ) ); ALLEGRO_EVENT ev; ALLEGRO_FONT * font8 = al_create_builtin_font(); ALLEGRO_BITMAP * postac = al_load_bitmap( "Files/postac.png" ); al_convert_mask_to_alpha( postac, al_map_rgb( 255, 255, 255 ) ); ALLEGRO_BITMAP * mapka1 = al_load_bitmap( "Files/mapka1.png" ); double Poruszanie = al_get_time(), Poruszanie_wyk = 0.002; double Poruszanie1 = al_get_time(), Poruszanie1_wyk = 0.002; double Wyswietlanie = al_get_time(); int postac_x = szer * 0.5, postac_y = wys * 0.5; std::cout << skala_x; std::cout << "\t" << skala_y; while( !al_key_down( & klawiatura, ALLEGRO_KEY_ESCAPE ) ) { if( al_get_time() > Poruszanie + Poruszanie_wyk / skala_x ) { if( al_key_down( & klawiatura, ALLEGRO_KEY_RIGHT ) && postac_x < szer -( rozm_x * skala_x ) ) postac_x = postac_x + 1; if( al_key_down( & klawiatura, ALLEGRO_KEY_LEFT ) && postac_x > 0 ) postac_x = postac_x - 1; Poruszanie = al_get_time(); } if( al_get_time() > Poruszanie1 + Poruszanie1_wyk / skala_y ) { if( al_key_down( & klawiatura, ALLEGRO_KEY_DOWN ) && postac_y < wys -( rozm_y * skala_y ) ) postac_y = postac_y + 1; if( al_key_down( & klawiatura, ALLEGRO_KEY_UP ) && postac_y > 0 ) postac_y = postac_y - 1; Poruszanie1 = al_get_time(); } if( al_get_time() > Wyswietlanie + 0.005 ) { al_clear_to_color( al_map_rgb( 0, 195, 255 ) ); al_draw_tinted_scaled_rotated_bitmap( mapka1, al_map_rgba( 255, 255, 255, 255 ), 0, 0, 0, 0, skala_x, skala_y, 0, 0 ); al_draw_tinted_scaled_rotated_bitmap( postac, al_map_rgba( 255, 255, 255, 255 ), 0, 0, postac_x, postac_y, skala_x, skala_y, 0, 0 ); al_flip_display(); Wyswietlanie = al_get_time(); } al_get_keyboard_state( & klawiatura ); } }
Jak można się domyślić w pliku ini mam ustawione fullscreen = 1 . proszę o pomoc bo sam nie wiem gdzie jest błąd bo w innych programach mi ten kod działa :/ Może tak jak mam ALLEGRO_FULLSCREEN to nie działa jak mam za to ALLEGRO_WINDOWER to działa. |