Problem z timerem
Ostatnio zmodyfikowano 2013-03-22 19:47
fers334 Temat założony przez niniejszego użytkownika |
Problem z timerem » 2013-03-22 18:29:07 Siemka mam problem mianowicie przy obiegu pętli nie wykrywa mi wciśnięcia ESC z niewiadomych mi przyczyn jak usunę timer wszystko jest git . Proszę o pomoc. Kod:
#include <allegro.h> #include "mapa.h"
volatile long speed_fps = 0; void incremented_speed() { speed_fps++; }
LOCK_VARIABLE( speed_fps ); LOCK_FUNCTION( incremented_speed );
int main() { allegro_init(); install_keyboard(); install_mouse(); install_timer(); install_int_ex( incremented_speed, BPS_TO_TIMER( 100 ) ); set_color_depth( 16 ); set_gfx_mode( GFX_AUTODETECT_WINDOWED, 800, 600, 0, 0 ); clear_to_color( screen, makecol( 255, 255, 255 ) ); BITMAP * bufor = 0; bufor = create_bitmap( 800, 600 ); mapa mapa_gry; while( !key[ KEY_ESC ] ) { while( speed_fps > 0 ) { mapa_gry.rysuj_mape( bufor ); mapa_gry.poruszanie_mapa(); blit( bufor, screen, 0, 0, 0, 0, 800, 600 ); clear_to_color( bufor, makecol( 255, 255, 255 ) ); speed_fps--; } } allegro_exit(); return 1; } END_OF_MAIN();
#include <allegro.h>
class mapa { private: short int map[ 100 ][ 100 ]; BITMAP * kafelki; int map_x; int map_y; public: mapa() : map_x( 0 ) , map_y( 0 ) { for( int x = 0; x < 100; x++ ) { for( int y = 0; y < 100; y++ ) { map[ x ][ y ] = 0; } } kafelki = load_bitmap( "kolcki.bmp", default_palette ); } void rysuj_mape( BITMAP * bufor ); void poruszanie_mapa(); }; void mapa::rysuj_mape( BITMAP * bufor ) { for( int x = 0; x < 20; x++ ) { for( int y = 0; y < 20; y++ ) { masked_blit( kafelki, bufor, ( map[ y + map_y ][ x + map_x ] % 3 ) * 50, ( map[ y + map_y ][ x + map_x ] / 3 ) * 50, x * 50, y * 50, 50, 50 ); textprintf( bufor, font, 20, 20, - 1, "MAPA : map_x = %d , map_y = %d ", map_x, map_y ); } } } void mapa::poruszanie_mapa() { if( key[ KEY_RIGHT ] && map_x < 21 ) { map_x++; } else if( key[ KEY_LEFT ] && map_x > 0 ) { map_x--; } else if( key[ KEY_UP ] && map_y > 0 ) { map_y--; } else if( key[ KEY_DOWN ] && map_y < 21 ) { map_y++; } }
|
|
fers334 Temat założony przez niniejszego użytkownika |
» 2013-03-22 19:47:44 Okey już rozwiązałem ten problem winne było wywołanie funkcji : textprintf( bufor, font, 20, 20, - 1, "MAPA : map_x = %d , map_y = %d ", map_x, map_y ); wewnątrz pętli . |
|
« 1 » |