maciejo Temat założony przez niniejszego użytkownika |
» 2011-02-08 20:23:20 main.cpp #include <allegro.h> #include "pliki.hpp"
BITMAP * bufor = NULL; BITMAP * gracz = NULL; BITMAP * n1 = NULL; BITMAP * pocisk = NULL;
short int mapa[ 19 ][ 25 ] = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }; void wys_mape() { for( int x = 0; x < 25; x++ ) { for( int y = 0; y < 19; y++ ) { if( mapa[ y ][ x ] == 1 ) blit( n1, bufor, 0, 0, x * 32, y * 32, 32, 32 ); } } };
int main() { allegro_init(); install_keyboard(); set_color_depth( 32 ); set_gfx_mode( GFX_AUTODETECT_WINDOWED, 800, 608, 0, 0 ); bufor = create_bitmap( 800, 608 ); gracz = load_bmp( "gracz.bmp", default_palette ); n1 = load_bmp( "1.bmp", default_palette ); pocisk = load_bmp( "pocisk.bmp", default_palette ); grcz player; pcsk strzalka; player.x = 50; player.y = 448; strzalka.x = 50; strzalka.y = 440; clear_to_color( bufor, makecol( 150, 150, 150 ) ); bool skok = false; int skakanie = 0; bool strzal = false; while( !key[ KEY_ESC ] ) { if( key[ KEY_LEFT ] && getpixel( bufor, player.x - 1, player.y ) != makecol( 128, 64, 0 ) && getpixel( bufor, player.x - 1, player.y + 31 ) != makecol( 128, 64, 0 ) ) player.x -= 2; if( key[ KEY_RIGHT ] && getpixel( bufor, player.x + 33, player.y ) != makecol( 128, 64, 0 ) && getpixel( bufor, player.x + 33, player.y + 31 ) != makecol( 128, 64, 0 ) ) player.x += 2; if( key[ KEY_UP ] && getpixel( bufor, player.x + 16, player.y + 33 ) == makecol( 128, 64, 0 ) ) { skok = true; skakanie = 20; } if( getpixel( bufor, player.x + 16, player.y + 33 ) != makecol( 128, 64, 0 ) && skok == false ) { player.y += 2; } if( skok == true ) { if( skakanie == 0 ) { skok = false; } else { player.y -= 5; skakanie -= 1; } } if( key[ KEY_S ] && strzal == false ) { strzal = true; strzalka.x = player.x + 16; strzalka.y = player.y + 16; } if( strzal == true ) { blit( pocisk, bufor, 0, 0, strzalka.x, strzalka.y, 32, 32 ); strzalka.x += 1; } if( strzal == true && getpixel( bufor, strzalka.x + 33, strzalka.y + 14 ) != makecol( 150, 150, 150 ) ) { strzal = false; } clear_to_color( bufor, makecol( 150, 150, 150 ) ); wys_mape(); blit( gracz, bufor, 0, 0, player.x, player.y, 32, 32 ); textprintf_ex( bufor, font, 10, 10, makecol( 255, 0, 0 ), - 1, "player.x : %d", player.x ); textprintf_ex( bufor, font, 10, 20, makecol( 255, 0, 0 ), - 1, "player.y : %d", player.y ); textprintf_ex( bufor, font, 10, 30, makecol( 255, 0, 0 ), - 1, "strzalka.x : %d", strzalka.x ); textprintf_ex( bufor, font, 10, 40, makecol( 255, 0, 0 ), - 1, "strzalka.y : %d", strzalka.y ); blit( bufor, screen, 0, 0, 0, 0, 800, 608 ); rest( 10 ); } destroy_bitmap( bufor ); destroy_bitmap( gracz ); destroy_bitmap( n1 ); destroy_bitmap( pocisk ); return 0; } END_OF_MAIN();
pliki.hpp #ifndef pliki_hpp #define pliki_hpp
class grcz { public: short x, y; }; class pcsk { public: short x, y; };
#endif
|