klapaucius Temat założony przez niniejszego użytkownika |
[allegro] Pętla » 2009-06-25 20:50:11 Chce napisac prostą gierke, w ktorej poruszala by sie pileczka na planszy, jednak mam problem bo chcialbym zeby po nacisinieciu klawisza ^ strzalki w gore pileczka "podskoczyla" (o ile to tak mozna nazwac, gdyz nie jest to jakis dokladny algorytm grawitacji :D) Chodzi o to, aby na chwile o 100 pixeli zmienila swoje polozenie(do gory) i potem wrocila na swoje miejsce. Niestey nie wyglada to tak rozowo w moim kodzie. Co w nim moze byc zle, ze po skompilowaniu, i nacisnieciu strzalk iw gore^ nic sie nie dzieje. #include <allegro.h> int main() { allegro_init(); install_keyboard(); set_color_depth( 32 ); set_gfx_mode( GFX_AUTODETECT_WINDOWED, 640, 480, 0, 0 ); set_palette( default_palette ); BITMAP * bufor = NULL; bufor = create_bitmap( 640, 480 ); int a = 20; while( !key[ KEY_ESC ] ) { clear_to_color( bufor, makecol( 255, 255, 255 ) ); rectfill( bufor, 500, 230, 30, 210, makecol( 128, 0, 223 ) ); circlefill( bufor, a, 179, 30, makecol( 255, 0, 234 ) ); blit( bufor, screen, 0, 0, 0, 0, 640, 480 ); readkey(); if( key[ KEY_LEFT ] ) { a--; } if( key[ KEY_RIGHT ] ) { a++; } if( key[ KEY_UP ] ) { int b = 179; while( b == 100 ) { clear_to_color( bufor, makecol( 255, 255, 255 ) ); circlefill( bufor, a, b, 30, makecol( 255, 0, 234 ) ); rectfill( bufor, 500, 230, 30, 210, makecol( 128, 0, 223 ) ); b--; rest( 100 ); } while( b == 179 ) { clear_to_color( bufor, makecol( 255, 255, 255 ) ); circlefill( bufor, a, b, 30, makecol( 255, 0, 234 ) ); rectfill( bufor, 500, 230, 30, 210, makecol( 128, 0, 223 ) ); b++; rest( 100 ); } } } allegro_exit(); return 0; } END_OF_MAIN();
|
klapaucius Temat założony przez niniejszego użytkownika |
» 2009-06-26 14:48:22 tylko ze po skompilowaniu tak jakby petla dziala(gdyz powtarza "rest(100)", co powoduje ze program sie na chwile zawiesza dopoki sie petla nie skonczy), natomiast z tą moją "piłką" nie dzieje. Nie przemieszcza sie. Czyt to moze byc spowodowane, gdyz naprawde nie widze tam niczego zlego |