J´ai trouvé ca :
//////////////////////////////////////////////////
//////////////////////////////////
/ / Gestion du clavier avec Allegro / /
/ / Deplacement d´un Rond a l´ecran / /
/ / Auteur : Amokrane Chentir / /
/ / Date : 31/05/2003 / /
//////////////////////////////////////////////////
//////////////////////////////////
- include < allegro.h>
void main()
{
BITMAP *image; / / pour charger un fond noir de taille 640 * 480
BITMAP *buffer;// buffer indispensable pour afficher l´image a l´ecran grace a la fonction blit
PALETTE palette;// la palette on s´en servira lors du chargement de l´image
int x=320; / / position du rond en x initial
int y=240; / / position du rond en y initial
install_allegro(SYSTEM_AUTODETECT,&,atexit); / / fonction d´initialisation d´allegro
install_keyboard(); / /initialisation du clavier
set_color_depth(16); / / mode 16 bits(plein ecran)
set_gfx_mode(GFX_AUTODETECT,640,480,0,0); / / indispensable pour le graphisme
buffer=create_bitmap(640,480); / / buffer de taille 640 * 480
image=load_bitmap("noir.bmp",palette); / / chargement de l´image . BMP
while(!key[KEY_ ESC]) / / Tant que l´on a pas pressé la touche ESC ( echap)
{
textout(image,font,"Deplacement d´un Rond avec Allegro ! ",1,1,makecol(100,100,12)); / /la fonction makecol est expliquée plus bas
circle(image,x,y,5,makecol(255,0,0)); / / Affichage sur notre bitmap d´un cercle dont le centre est au coordonés x=320 et y=240 et de rayon 5
blit(image,buffer,0,0,0,0,image->w,image->h); / / Affichage de l´image sur le buffer
blit(buffer,screen,0,0,0,0,640,480); / / le buffer affichera ceci sur l´ecran
if(key[KEY_UP]) / / si on appuie sur la touche du haut
{
clear_bitmap(image); / / efface l´ecran
y--; / / on decrement y
circle(image,x,y,5,makecol(255,0,0)); / / et on affiche de nouveau le cercle
}
else if(key[KEY_DOWN]) / / LA meme chose . ..
{
clear_bitmap(image);
y++;
circle(image,x,y,5,makecol(255,0,0));
}
else if(key[KEY_LEFT])
{
clear_bitmap(image);
x--;
circle(image,x,y,5,makecol(255,0,0));
}
else if(key[KEY_RIGHT])
{
clear_bitmap(image);
x++;
circle(image,x,y,5,makecol(255,0,0));
}
}
}
END_OF_MAIN(); / / Allegro exige que l´on mette ça a la fin du code . ..
//////////////////////////////////////////////////
///////////////////////////////////////// / /
/ / OK , alors makecol c´est pour la couleur , analysons les 3 parametres : / /
/ / makecol(255,0,0) ici le premier parametre est 255 ce qui nous donnera la couleur rouge / /
/ / makecol(0,255,0)ça c´est pour la couleur Verte / /
/ / makecol(0,0,255) et vla pour la couleur Bleue / /
/ / d´ou le mot RGB Red Green Blue / /
/ / makecol(R,G,B) ! / /
/ / Rappelez vous maintenant quand vous etiez a l´ecole primaire on vous apprenez a melanger les couleurs / /
/ / primaires pour obtenir des couleurs secondaires , dans notre cas c´est la meme chose / /
/ / ex : makecol(100,100,12); donnera la couleur vert militaire ! / /
//////////////////////////////////////////////////
//////////////////////////////////////////////////
/////////
/ * Ok maitenant parlons du systeme buffer affichage a l´ecran qui s´appelle entre autre le double buffering
le double buffering consiste a dessiner dabbord dans une zone de la memoire pour ensuite afficher le bitmap
à l´ecran , c´est ce que fait nos 2 fonctions blit(voir plus haut)
blit(image,buffer,0,0,0,0,image->w,image->h) => la on dessine dans une zone de la memoire
blit(buffer,screen,0,0,0,0,640,480);=> et la on affiche sur notre ecran de taille 640*480
C´est tres simple
*/
/ * Allegro gere le clavier par le biais de diverses manieres ici j´ai utilise la technique la plus simple
key[KEY_$] : ou $ peut etre une lettre comme N B D U ou bien tout simplement la case ESC UP DOWN etc....
*/
/ * Pour plus d´infos sur la librairie d´allegro allez jetez un coup d´oeil sur www.allegro.cc */