Kamil9132 Temat założony przez niniejszego użytkownika |
» 2012-01-30 20:20:27 Ale w poleceniu blit trzeba podać dwie bitmapy, a bitmap nie można stworzyć przed początkiem głównej funkcji, chciałem zrobić takie coś ale wyskakuje błąd: #define UNICODE #include <allegro.h> #include <ctime> #include <fstream> #include <iostream> #include <string> #include <winalleg.h>
volatile long speed = 0; void increment_speed() { speed++; } END_OF_FUNCTION( increment_speed );
LOCK_VARIABLE( speed ); LOCK_FUNCTION( increment_speed );
volatile long speed1 = 0; void increment_speed1() { speed1++; } END_OF_FUNCTION( increment_speed1 );
LOCK_VARIABLE( speed1 ); LOCK_FUNCTION( increment_speed1 );
void postwor() { blit( potworek, pamiec, 0, 0, postacx + 50, postacy - klatkisko, 30, 35 ); }
int main() { set_uformat( U_UTF8 ); get_uformat(); allegro_init(); install_keyboard(); install_timer(); install_int_ex( increment_speed, BPS_TO_TIMER( 200 ) ); install_int_ex( increment_speed1, BPS_TO_TIMER( 300 ) ); set_color_depth( 16 ); set_gfx_mode( GFX_AUTODETECT, 800, 600, 0, 0 ); BITMAP * pamiec = create_bitmap( 800, 600 ); BITMAP * postac = load_bmp( "grafika/postac.bmp", default_palette ); BITMAP * plansza = load_bmp( "grafika/plansza.bmp", default_palette ); BITMAP * potworek = load_bmp( "grafika/potworek.bmp", default_palette ); FONT * font_pcx = load_font( "tekstmenu.pcx", default_palette, NULL ); clear_to_color( screen, makecol( 239, 235, 184 ) ); clear_to_color( pamiec, makecol( 239, 235, 184 ) ); int wyjdz = 0; int menug = 0; int gra = 1; int postacx = 100; int postacy = 445; int zmianapostac = 0; int klatkisko = 0; int skok = 0; int gora = 0; while( wyjdz != 1 ) { if( key[ KEY_ESC ] ) wyjdz = 1; textprintf( pamiec, font, 20, 20, makecol( 255, 255, 128 ), "klatkisko %d", klatkisko ); if( gra == 1 ) { while( speed > 0 ) { zmianapostac = 0; speed = 0; } if( key[ KEY_RIGHT ] and zmianapostac == 0 ) { postacx++; zmianapostac = 1; } if( key[ KEY_LEFT ] and zmianapostac == 0 ) { postacx--; zmianapostac = 1; } if( postacx == - 1 ) postacx = 0; if( postacx == 771 ) postacx = 770; if( key[ KEY_SPACE ] ) { skok = 1; } if( skok == 1 ) { while( speed1 > 0 and klatkisko < 100 and gora == 0 ) { klatkisko++; speed1 = 0; } if( klatkisko == 100 ) gora = 1; while( speed1 > 0 and klatkisko > - 1 and gora == 1 ) { klatkisko--; speed1 = 0; if( klatkisko == 0 ) { gora = 0; skok = 0; } } } potwor(); blit( plansza, pamiec, 0, 0, 0, 480, 30, 35 ); blit( plansza, pamiec, 0, 0, 30, 480, 30, 35 ); blit( plansza, pamiec, 0, 0, 60, 480, 30, 35 ); blit( plansza, pamiec, 0, 0, 90, 480, 30, 35 ); blit( plansza, pamiec, 0, 0, 120, 480, 30, 35 ); blit( plansza, pamiec, 0, 0, 150, 480, 30, 35 ); blit( plansza, pamiec, 0, 0, 180, 480, 30, 35 ); blit( plansza, pamiec, 0, 0, 210, 480, 30, 35 ); blit( plansza, pamiec, 0, 0, 240, 480, 30, 35 ); blit( plansza, pamiec, 0, 0, 270, 480, 30, 35 ); blit( plansza, pamiec, 0, 0, 300, 480, 30, 35 ); blit( plansza, pamiec, 0, 0, 330, 480, 30, 35 ); blit( plansza, pamiec, 0, 0, 360, 480, 30, 35 ); blit( plansza, pamiec, 0, 0, 390, 480, 30, 35 ); blit( plansza, pamiec, 0, 0, 420, 480, 30, 35 ); blit( plansza, pamiec, 0, 0, 450, 480, 30, 35 ); blit( plansza, pamiec, 0, 0, 480, 480, 30, 35 ); blit( plansza, pamiec, 0, 0, 510, 480, 30, 35 ); blit( plansza, pamiec, 0, 0, 540, 480, 30, 35 ); blit( plansza, pamiec, 0, 0, 570, 480, 30, 35 ); blit( plansza, pamiec, 0, 0, 600, 480, 30, 35 ); blit( plansza, pamiec, 0, 0, 630, 480, 30, 35 ); blit( plansza, pamiec, 0, 0, 660, 480, 30, 35 ); blit( plansza, pamiec, 0, 0, 690, 480, 30, 35 ); blit( plansza, pamiec, 0, 0, 720, 480, 30, 35 ); blit( plansza, pamiec, 0, 0, 750, 480, 30, 35 ); blit( plansza, pamiec, 0, 0, 780, 480, 30, 35 ); blit( postac, pamiec, 0, 0, postacx, postacy - klatkisko, 30, 35 ); } blit( pamiec, screen, 0, 0, 0, 0, 800, 600 ); clear_to_color( pamiec, makecol( 239, 235, 184 ) ); } allegro_exit(); return 0; } END_OF_MAIN();
|