kata.mic Temat założony przez niniejszego użytkownika |
[Allegro, C++] Częściowe wyświetlanie zamiast wszystko na raz » 2011-12-25 20:32:04 Problem wygląda w ten sposób: Po przełączeniu ekranu spacją ładuję się tak jak by połowa tzn. ludzik.bmp, dwa okienka, ale zostaje "pod nimi" tekst z poprzedniego ekranu (tekst niechciany oczywiście w tym momencie już). Gdy nacisnę po raz kolejny spację pojawia się tekst który chciał bym żeby był już za pierwszym wciśnięciem spacji czyli "Witaj w grze." ale znika wtedy ludzik.bmp. I tak jakby po 3 spacjach dopiero jest ekran z wszystkim, który chciał bym żeby się wyświetlał już za pierwszym kliknięciem spacji. A każde kolejne to jest na zmianę pojawienie się i zniknięcie ludzik.bmp. Może jest ktoś kto wie jak to doprowadzić do normalnego, logicznego porządku? Poniżej fragment tego kodu: if( start == true ) { BITMAP * mala_postac = NULL; textout_ex( bufor, font_pcx, "Witaj w grze!", 337, 60, makecol( 10, 1, 116 ), - 1 ); BITMAP * obrazek1 = NULL; BITMAP * obrazek2 = NULL; obrazek1 = create_bitmap( 700, 500 ); if( !obrazek1 ) { set_gfx_mode( GFX_TEXT, 0, 0, 0, 0 ); allegro_message( "Nie mogę załadować obrazka 1!" ); allegro_exit(); return 0; } obrazek2 = create_bitmap( 300, 500 ); if( !obrazek2 ) { set_gfx_mode( GFX_TEXT, 0, 0, 0, 0 ); allegro_message( "Nie mogę załadować obrazka 2!" ); allegro_exit(); return 0; } clear_to_color( obrazek1, makecol( 1, 63, 49 ) ); clear_to_color( obrazek2, makecol( 23, 223, 63 ) ); textout_ex( obrazek1, font, "Ekran gry.", 2, 2, makecol( 0, 0, 255 ), - 1 ); textout_ex( obrazek2, font, "Lista z wynikami.", 2, 2, makecol( 0, 0, 255 ), - 1 ); blit( obrazek1, screen, 0, 0, 150, 234, obrazek1->w, obrazek1->h ); blit( obrazek2, screen, 0, 0, 900, 234, obrazek2->w, obrazek2->h ); readkey(); mala_postac = load_bmp( "mala_postac.bmp", default_palette ); if( !mala_postac ) { set_gfx_mode( GFX_TEXT, 0, 0, 0, 0 ); allegro_message( "Nie mogę załadować obrazka!" ); allegro_exit(); return 0; } blit( mala_postac, screen, 0, 0, 150, 10, mala_postac->w, mala_postac->h ); readkey(); destroy_bitmap( obrazek1 ); destroy_bitmap( obrazek2 ); destroy_bitmap( mala_postac ); if( key[ KEY_RCONTROL ] ) start = false; } |
|
Winner |
» 2011-12-25 23:07:53 Nie wiem czy dobrze rozumiem Twój problem, ale według mnie usun sobie jedno readkey(); O w tym miejscu: blit( obrazek1, screen, 0, 0, 150, 234, obrazek1->w, obrazek1->h ); blit( obrazek2, screen, 0, 0, 900, 234, obrazek2->w, obrazek2->h ); readkey(); usun to readkey(); bo malapostac wyświetli się dopiero po naciśnięciu jakiegoś klawisza... A Ty chcesz chyba aby wszystko razem się wyświetlało? |
|
kata.mic Temat założony przez niniejszego użytkownika |
» 2011-12-26 01:50:14 O to chodziło, działa ładnie. Dzięki Winner. |
|
kata.mic Temat założony przez niniejszego użytkownika |
» 2011-12-26 18:56:16 Jeszcze takie pytanie co do tego tematu, jak wprawić w ruch tą postać kodem ( z kursu): BITMAP * mala_strzela = NULL;
mala_strzela = load_bmp( "mala_strzela.bmp", default_palette ); if( !mala_strzela ) { set_gfx_mode( GFX_TEXT, 0, 0, 0, 0 ); allegro_message( "Nie mogę załadować obrazka mala_strzela!" ); allegro_exit(); return 0; } int mala_strzela_x = 100, mala_strzela_y = 100;
while( !key[ KEY_ESC ] ) { if( key[ KEY_LEFT ] ) mala_strzela_x--; if( key[ KEY_RIGHT ] ) mala_strzela_x++; if( key[ KEY_UP ] ) mala_strzela_y--; if( key[ KEY_DOWN ] ) mala_strzela_y++; rest( 10 ); masked_blit( mala_strzela, screen, 0, 0, mala_strzela_x, mala_strzela_y, mala_strzela->w, mala_strzela->h ); }
destroy_bitmap( mala_strzela ); Tzn w którym miejscu tego kodu z poprzedniego postu? Jeśli wstawię to zaraz przed lub po readkey() to wtedy brakuje napisu "Witaj w grze". |
|
kata.mic Temat założony przez niniejszego użytkownika |
» 2011-12-27 16:17:55 Panowie wie ktoś co jest nie tak z kodem że po przełączeniu ekranu spacją na nowym ekranie zostaje mi tekst z poprzedniego ekranu i dodatkowo nie pojawia sie tekst który powinien się pojawić na nowym ekranie.
Co do kodu gry to jest to mniej więcej to co w poprzednich postach. |
|
Gabes |
» 2011-12-27 16:28:53 Podstawy allegro nie czytałeś kursu
-wszystko na bufor
-jeśli warunek nie będzie spełniony nic nowego się nie wyświetli.
|
|
« 1 » |