Accueil > > > TUTORIAL ALLEGRO (GESTION DU CLAVIER ET DEPLACEMENT D'UN ROND ÀL'ECRAN)
TUTORIAL ALLEGRO (GESTION DU CLAVIER ET DEPLACEMENT D'UN ROND ÀL'ECRAN)
Information sur la source
Description
Bon j'ai decide de faire un tutorial sur allegro pour ceux qui ne connaissent pas encore cette magnifique librairie graphique specialement concue pour les jeux , voila ce tutorial montre comment deplacer un rond à l'ecran et aussi la gestion du clavier ...
Source
- ////////////////////////////////////////////////////////////////////////////////////
- // 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,&errno,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 */
////////////////////////////////////////////////////////////////////////////////////
// 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,&errno,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 */
Conclusion
PS : je fais mes premiers pas avec allegro donc si il ya quelqu'un qui connait bien la librairie et qui trouve qu'il ya une erreur dans le code alors c'est avec plaisir qu'il me corrige :)
je tiens au passage a remercier un certain yeux d'or qui m'a fait connaitre allegro :p
Sources du même auteur
Sources de la même categorie
Commentaires et avis
|
Derniers Blogs
INTéGRATION YAMMER ET SHAREPOINT ONLINE (OFFICE 365), éTAPE 1 .INTéGRATION YAMMER ET SHAREPOINT ONLINE (OFFICE 365), éTAPE 1 . par Patrick Guimonet
#Yammer Certains s'en sont déjà fait l'écho (ici en allemand par exemple : Yammer Integration in Office 365 Phase 1) ou bien sûr sur le blog SharePoint : Make Yammer your default social network in Office 365 en anglais. Mais c'e...
Cliquez pour lire la suite de l'article par Patrick Guimonet [DYNAMICS CRM] AJOUTER LES DOSSIERS DE CRM AU DOSSIER FAVORIS D'OUTLOOK[DYNAMICS CRM] AJOUTER LES DOSSIERS DE CRM AU DOSSIER FAVORIS D'OUTLOOK par bianca
Objectif
Pour aller plus rapidement dans les menus de Dynamics CRM depuis votre client CRM pour Outlook, vous pouvez utiliser le dossier des Favoris d'Outlook. En effet, par simple glisser/déplacer, vous pouvez déposer un éléme...
Cliquez pour lire la suite de l'article par bianca VISUAL STUDIO 2013VISUAL STUDIO 2013 par Etienne Margraff
Ahh, ENFIN ! c'est officiel, il va y avoir un VS et un TFS 2013. De nouvelles fonctionnalités qui vont à mon sens assoir la maturité de TFS qui est maintenant l'outil incontournable pour tout projet (.NET, mais pas seulement !). Si vous n'avez pas jet...
Cliquez pour lire la suite de l'article par Etienne Margraff CONFIGURER LA COLLATION SQL SERVER POUR SHAREPOINT CONFIGURER LA COLLATION SQL SERVER POUR SHAREPOINT par JeremyJeanson
Note : Je poste cet article à titre de pense-bête. Cela fait des années que je me trimballe avec une capture d'écran, car je ne me rappel jamais comment choisir la collation d'un SQL Server pour SharePoint. Pour SharePoint, il est conseillé de choisir la ...
Cliquez pour lire la suite de l'article par JeremyJeanson ETENDRE LE TEAM WEB ACCESS DE TFS 2012 - STEP 1: CRéATION DU PLUGINETENDRE LE TEAM WEB ACCESS DE TFS 2012 - STEP 1: CRéATION DU PLUGIN par Philess
Dans cet article nous allons créer un plugin installable sur le Team Web Access qui s'intègrera dans l'architecture du site et se chargera au moment où on le décidera.
Avant de lire ce billet et si cela n'est pas encore fait j...
Cliquez pour lire la suite de l'article par Philess
Logiciels
Nego Facturation (1.85)NEGO FACTURATION (1.85)Nego Facturation est un logiciel complet qui permet de gérer vos factures et devis très simplemen... Cliquez pour télécharger Nego Facturation Devis-Factures PHMSD (2.2.0.1)DEVIS-FACTURES PHMSD (2.2.0.1)Configuration minimale
Nécessite Windows™ 2000, XP, Windows 7, 8, Vista (Service Pack à... Cliquez pour télécharger Devis-Factures PHMSD WDmemoCode (2.0.0.1)WDMEMOCODE (2.0.0.1)WDmemoCode a été conçu pour aider les développeurs Windev à créer/compléter et conserver une base... Cliquez pour télécharger WDmemoCode ProtoMedic (4.0.0.11)PROTOMEDIC (4.0.0.11)ProtoMedic est un logiciel destiné principalement aux médecins généralistes.
ProtoMedic permet d... Cliquez pour télécharger ProtoMedic MyCurriculum 2011 (7.4.1.12)MYCURRICULUM 2011 (7.4.1.12)Rédigez votre Curriculum Vitae mais également ceux de votre famille ou de vos amis très facilemen... Cliquez pour télécharger MyCurriculum 2011
|