Aby sterować obiektami w programach,
grach potrzebna jest nam znajomość obsługi klawiatury,
na początek mały przykładzik:
#include <allegro5/allegro.h>
int szer=320,wys=240;
int main()
{
al_init();
al_install_keyboard();
ALLEGRO_KEYBOARD_STATE klawiatura;
ALLEGRO_DISPLAY *okno = al_create_display( szer, wys);
al_set_window_title( okno,"Allegro5 klawiatura i czas");
ALLEGRO_BITMAP *kwadrat = al_create_bitmap(32,32);
al_set_target_bitmap(kwadrat);
al_clear_to_color(al_map_rgb(255,255,0));
al_set_target_bitmap(al_get_backbuffer(okno));
int x=100, y=100;
double czas = al_get_time();
while( !al_key_down( &klawiatura, ALLEGRO_KEY_ESCAPE))
{
al_get_keyboard_state(&klawiatura);
if ( al_get_time() > czas + 0.01)
{
if ( al_key_down(&klawiatura, ALLEGRO_KEY_RIGHT ) && x <= szer-32) x=x+1 ;
if ( al_key_down(&klawiatura, ALLEGRO_KEY_LEFT ) && x >= 0) x=x- 1 ;
if ( al_key_down(&klawiatura, ALLEGRO_KEY_DOWN ) && y <= wys -32) y=y+1 ;
if ( al_key_down(&klawiatura, ALLEGRO_KEY_DOWN ) && y <= wys -32) y=y+1 ;
if ( al_key_down(&klawiatura, ALLEGRO_KEY_UP ) && y >= 0) y=y- 1 ;
czas = al_get_time();
}
al_clear_to_color(al_map_rgb_f(0.5,0.5,0.5));
al_draw_bitmap (kwadrat,x,y,0);
al_flip_display();
al_rest(0.001);
al_rest(0.001);
}
al_destroy_bitmap(kwadrat);
al_destroy_display(okno);
return 0;
}
Opis:
int szer=320,wys=240;// aby łatwiej
zmieniać sobie wysokość i szerokość ekranu, utworzymy dwie
zmienne.
al_install_keyboard();//
instalujemy klawiaturę.
A
tak, al_uninstall_keyboard();// odinstalowujemy
klawiaturę.
ALLEGRO_KEYBOARD_STATE
klawiatura;//
tworzymy zmienną do struktury stanów klawiatury.
while(
!al_key_down(
&klawiatura,
ALLEGRO_KEY_ESCAPE))//
początek pętli głównej,sprawdzenie czy wciśnięty klawisz
escape, kończący program.
al_get_keyboard_state(&klawiatura);
//odczyt stanu klawiatury
if ( al_key_down(&klawiatura, ALLEGRO_KEY_RIGHT ) && x <= szer-32) x=x+1 ;//sprawdzenie jaki klawisz wciśnięty i czy pozycja x (minus szerokość bitmapy) większa od szerokości ekranu.
Kody klawiszy <-link
if ( al_key_down(&klawiatura, ALLEGRO_KEY_RIGHT ) && x <= szer-32) x=x+1 ;//sprawdzenie jaki klawisz wciśnięty i czy pozycja x (minus szerokość bitmapy) większa od szerokości ekranu.
Kody klawiszy <-link
double
czas
= al_get_time();//zwraca liczbę sekund od czasu zainicjowania
Link -> Link do przykładowych programów Allegro-5
Link -> Link do przykładowych programów Allegro-5
Brak komentarzy:
Prześlij komentarz