Forczek Temat założony przez niniejszego użytkownika |
[C++/Allegro] Poruszanie się posaci. » 2012-05-26 12:16:28 Siemka, oto mój kod:
#include <allegro.h> int main() { allegro_init(); install_keyboard(); set_color_depth( 16 ); set_gfx_mode( GFX_AUTODETECT_WINDOWED, 800, 500, 0, 0 ); clear_to_color( screen, makecol( 10, 10, 10 ) ); BITMAP * postac = NULL; BITMAP * ludek = NULL; postac = load_bmp( "postac.bmp", default_palette ); if( !postac ) { set_gfx_mode( GFX_TEXT, 0, 0, 0, 0 ); allegro_message( "nie mogê za³adowaæ Postaci wody !" ); allegro_exit(); return 0; } ludek = load_bmp( "ludek.bmp", default_palette ); if( !ludek ) { set_gfx_mode( GFX_TEXT, 0, 0, 0, 0 ); allegro_message( "nie mogê za³adowaæ Postaci ognia !" ); allegro_exit(); return 0; } masked_blit( postac, screen, 0, 0, 300, 200, postac->w, postac->h ); masked_blit( ludek, screen, 0, 0, 100, 200, ludek->w, ludek->h ); int postac_x = 300, postac_y = 200; int ludek_x = 100, ludek_y = 200; while( !key[ KEY_ESC ] ) { if( key[ KEY_A ] ) ludek_x--; if( key[ KEY_D ] ) ludek_x++; if( key[ KEY_W ] ) ludek_y--; if( key[ KEY_S ] ) ludek_y++; if( key[ KEY_LEFT ] ) postac_x--; if( key[ KEY_RIGHT ] ) postac_x++; if( key[ KEY_UP ] ) postac_y--; if( key[ KEY_DOWN ] ) postac_y++; } destroy_bitmap( ludek ); destroy_bitmap( postac ); allegro_exit(); return 0; } END_OF_MAIN();
Co jest z nim nie tak? Wciskam F9 kompiluje się normalnie. Lecz gdy wciskam przycisk to się nie poruszają. |
|
akwes |
» 2012-05-26 12:31:46 A dlaczego niby ma się ruszać? Skoro Ty ruszasz zupełnie z nim niezwiązanymi zmiennymi? int postac_x = 300, postac_y = 200; int ludek_x = 100, ludek_y = 200;
Te zmienne się zmieniają. A ludek stoi, bo tylko raz go rysujesz i to we wskazanym miejscu. masked_blit( postac, screen, 0, 0, 300, 200, postac->w, postac->h ); masked_blit( ludek, screen, 0, 0, 100, 200, ludek->w, ludek->h );
|
|
Forczek Temat założony przez niniejszego użytkownika |
» 2012-05-26 13:13:21 Dzięki, naprawiło się, zamykam temat. |
|
« 1 » |