[Allegro] Przewijanie tła (background)
Ostatnio zmodyfikowano 2009-07-18 20:02
wojownik266 Temat założony przez niniejszego użytkownika |
[Allegro] Przewijanie tła (background) » 2009-07-16 19:58:56 Tak problem scrollowania przewijał się na tym forum już niejednokrotnie, ale ja nie jestem w stanie wykroić (zmodyfikować) tych kodów które mi są do szczęścia potrzebne ponieważ moj poziom zaawansowania c++ mi na to nie pozwala. Więc może ktoś napisze mi tylko samą funkcję przewijania tła (fotki)? Do celów edukacyjnych?Za co będę bardzo wdzięczny.
|
|
DejaVu |
» 2009-07-16 20:05:47 |
|
DejaVu |
» 2009-07-17 18:27:29 Zmieniasz sens wątku edytując całkowicie pierwszego posta. Dla mnie w tym momencie temat jest zakończony i można go posłać do kosza. Dostałeś przykład, a razem z nim hasło pod jakim należy szukać tego owego przewijania tła. Jest to już gdzieś opisane na forum co konkretnie trzeba zrobić aby przewijać tło (mały wycinek kodu). |
|
wojownik266 Temat założony przez niniejszego użytkownika |
[Allegro] Przewijanie tła (background) » 2009-07-18 20:02:12 Płynne przewijanie ma się tak: #include <allegro.h>
BITMAP * chmury = NULL; BITMAP * bufor = NULL;
const int HEIGHT = 800; const int WIGTH = 600;
int poz_x = 0, poz_y = 0; volatile long speed = 0; void increment_speed() { speed++; } END_OF_FUNCTION( increment_speed ); LOCK_VARIABLE( speed ); LOCK_FUNCTION( increment_speed );
int main() { allegro_init(); install_keyboard(); install_timer(); install_int_ex( increment_speed, BPS_TO_TIMER( 100 ) ); set_palette( default_palette ); set_color_depth( 16 ); set_gfx_mode( GFX_AUTODETECT_WINDOWED, 800, 600, 0, 0 ); chmury = load_bmp( "chmury_2.bmp", default_palette ); bufor = create_bitmap( 800, 600 ); while( !key[ KEY_ESC ] ) { while( speed > 0 ) { clear_to_color( bufor, makecol( 255, 255, 255 ) ); blit( chmury, bufor, 0, 0, poz_x, poz_y, chmury->w, chmury->h ); blit( chmury, bufor, 0, 0,( poz_x +( chmury->w ) ), poz_y, chmury->w, chmury->h ); poz_x--; if(( poz_x +( chmury->w ) ) == 0 ) poz_x = 0; blit( bufor, screen, 0, 0, 0, 0, 800, 600 ); speed--; } } remove_int( increment_speed ); destroy_bitmap( chmury ); destroy_bitmap( bufor ); allegro_exit(); return 0; } END_OF_MAIN(); |
|
« 1 » |