Cześć :) od jakiegoś czasu uczę się programowania w c++ i jestem teraz na etapie nauki w bibliotece graficznej. Przy próbie zrobienia prostej animacji (samochód jeżdżący po ekranie) po kilku sekundach takiej jazdy wyskakuje błąd i program się wyłącza. Nie mam w tej bibliotece wielkiego doświadczenia więc nie wiem gdzie szukać błędu. Liczę, na podpowiedź co jest przyczyną tego wyłączania się aplikacji. Zamieszczam owy nieszczęsny kod i proszę o pomoc :)
P.S. Potrzebna jest grafika o nazwie samochod.bmp w folderze.
#include <allegro.h> #include <math.h> #include <winalleg.h> double x=100, y=100; // pozycja samochodu int kat=0; // kat o jaki jest obrocony samochod w stopniach double delta_x=1, delta_y=0; // przyrosty pozycji samochodu w trakcie jazdy zależne od kata void wyswietl() { BITMAP * bufor = NULL; bufor = create_bitmap( 1024, 768 ); BITMAP * samochod = NULL; samochod = load_bmp( "samochod.bmp", default_palette ); clear_to_color( bufor, 100 ); fixed kat_obrotu = kat * 256 / 360.0; // zamiana kata z stopni na zapis liczbowy stosowany przez funkcje rotate_sprite rotate_sprite( bufor, samochod, x, y, ftofix( kat_obrotu ) ); // kopiowanie bitmapy samochod obrocona o odpowiedni kat do bitmapy bufor blit( bufor, screen, 0, 0, 0, 0, bufor->w, bufor->h ); } void glowna() { while( !key[ KEY_ESC ] ) { Sleep(15); wyswietl(); if ( key[ KEY_UP ] ) { x+=delta_x*10; y+=delta_y*10; if ( key[ KEY_LEFT ] ) kat-=5; if ( key[ KEY_RIGHT ] ) kat+=5; } delta_x = cos( kat * M_PI / 180 ); delta_y = sin( kat * M_PI / 180 ); } } int main() { allegro_init(); install_keyboard(); set_color_depth( 32 ); set_gfx_mode( GFX_AUTODETECT_FULLSCREEN, 1024, 768, 0, 0 ); set_palette( default_palette ); glowna(); readkey(); allegro_exit(); return 0; } END_OF_MAIN();