Gronek8624 Temat założony przez niniejszego użytkownika |
(allegro)Problem z buforem » 2010-03-01 23:01:06 Problem polega na tym że postać sie nie pojawia a bufor sobie miga Do tego wszystko co umieszczam na buforze to się wo gule nie pojawia :( #include <allegro.h> int main() { allegro_init(); install_keyboard(); set_color_depth( 32 ); set_gfx_mode( GFX_AUTODETECT, 1024, 768, 0, 0 ); clear_to_color( screen, makecol( 247, 156, 26 ) ); BITMAP * bufor = NULL; BITMAP * ludek = NULL; BITMAP * obrazektla = NULL; bufor = create_bitmap( 1024, 117 ); if( !bufor ) { set_gfx_mode( GFX_TEXT, 0, 0, 0, 0 ); allegro_message( "Nie mogę utworzyć bufora !" ); allegro_exit(); return 0; } ludek = load_bmp( "Parkurzysta.bmp", default_palette ); if( !ludek ) { set_gfx_mode( GFX_TEXT, 0, 0, 0, 0 ); allegro_message( "nie mogę załadować obrazka Gronka !" ); allegro_exit(); return 0; } obrazektla = load_bmp( "obrazektla.bmp", default_palette ); if( !obrazektla ) { set_gfx_mode( GFX_TEXT, 0, 0, 0, 0 ); allegro_message( "nie mogę załadować obrazka 1 !" ); allegro_exit(); return 0; } int ludek_x = 0, ludek_y = 594; while( !key[ KEY_ESC ] ) { if( key[ KEY_LEFT ] ) ludek_x--; if( key[ KEY_RIGHT ] ) ludek_x++; if( key[ KEY_UP ] ) ludek_y--; if( key[ KEY_DOWN ] ) ludek_y++; clear_to_color( bufor, makecol( 255, 0, 255 ) ); rest( 1 ); blit( bufor, screen, 0, 0, 0, 594, 1024, 594 ); masked_blit( ludek, bufor, 0, 0, ludek_x, ludek_y, ludek->w, ludek->h ); blit( obrazektla, screen, 0, 0, 0, 0, obrazektla->w, obrazektla->h ); } destroy_bitmap( obrazektla ); destroy_bitmap( bufor ); destroy_bitmap( ludek ); allegro_exit(); return 0; } END_OF_MAIN(); Jak sądzę to coś przeoczyłem ale nie mogę tego znaleźć bardzo proszę o pomoc |
|
Bartaz |
... » 2010-03-01 23:13:41 Nie jestem pewien czy to cos da ale czemu kopiujesz obrazek tla na screen a nie na bufor? i poco czyscisz na jakis tam kolor w petli ciagle screen?
|
|
dmx81 |
» 2010-03-01 23:55:27 dokladnie, sprobuj nie czyscic ekranu, po drugie sprobuj robic tak: czyscisz bufor na dany kolor, rysujesz wszytsko po kolei na bufor, na sam koniec rysujesz bufor na ekran-screen. no i wystarczy wtedy jeden raz rest, np po narysowaniu wszytskiego - oczywiscie to tylko sugestia, wyprobuj, moze pomoze - a bufor oczywiscie wielkosci takiej, jaka ma miec "koncowy" ekran czyli jesli chcesz miec 800x600, taki wlasnie zrobic bufor, na to widze masz jakis obrazek tla, a na to dalej inne rzeczy rysowac, tzn wszytsko na bufor, ale zobaczysz, ze kolejnosc rysowania tez ma znaczenie - sam dojdziesz, ktore elementy przykrywaja ktore. |
|
szyx_yankez |
» 2010-03-02 06:50:43 na sam koniec rysujesz bufor na ekran - screen.
Równie dobrze może bufor rysować na sam początek a wszystkie bitmapy które będą rysowane na buforze na końcu, nie ma to żadnego znaczenia, to tylko kwestia gustu, jednak te bitmapy które będą rysowane na buforze która którą będzie pokrywać zależy już od kolejności. |
|
Gronek8624 Temat założony przez niniejszego użytkownika |
» 2010-03-02 16:38:42 Dziek wszystkim za pomoc :) Temat zamknięty |
|
« 1 » |