begin process at 2013 06 19 18:24:27
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Tutoriaux

 > 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

Note :
10 / 10 - par 1 personne
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Tutoriaux Niveau :Débutant Date de création :01/06/2003 Date de mise à jour :01/06/2003 15:09:08 Vu / téléchargé :10 418 / 596

Auteur : AmK

Ecrire un message privé
Commentaire sur cette source (11)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
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  

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source avec une capture LIBRAIRIE DE TRAITEMENT DU SIGNAL
Source avec Zip SNAKE GRAPHIQUE ( 1/2 JOUEURS ET IA)
Source avec Zip BLACKJAK AVEC ALLEGRO !!!
Source avec Zip DEMO AVEC ALLEGRO !(HERVÉ AND DADY)
Source avec Zip Source avec une capture SNAKE EN MODE TEXTE !(LAHNACHE)

 Sources de la même categorie

Source avec Zip INTERROGATION WMI / CIM V2 EN C par Metalbobinou
LISTER FICHIERS ET RÉPERTOIRES (MULTIPLATEFORME) par christophedlr
UTILISATION DES TYPELIST EN C++ par wyden
Source avec Zip Source avec une capture QCSSCOMPRESSOR par alphaone
AFFICHAGE D'UN TRIANGLE ISOCELE par nabche

Commentaires et avis

Commentaire de AmK le 01/06/2003 14:15:36

je mettrai un zip des que j'aurai du temps ... :)

Commentaire de AmK le 01/06/2003 15:15:08

voila qui est fait :d

Commentaire de GoldenEye le 01/06/2003 18:41:22

Ton code est juste mais très très peu performant. En effet, tu effaces l'écran tout entier à chaque rafraichissement alors que ton cercle a un rayon de 5 pixels seulement ! Bref tu vois les choses en trop grand. Tu dois à peu près tourner à 300 fps chez moi. En optimisant (en n'effaçant que la partie de l'écran qui a changé), on devrait atteindre 1000...
Voilà, je ne te donne pas la méthode, ce n'est pas drôle sinon
Et puis merci du remerciement, ça fait toujours plaisir

Commentaire de AmK le 02/06/2003 10:51:10

ok donc ce qu'il faudrait c'est juste effacer la partie de l'ecran prise par le cercle c'est a dire la partie qui fait un is vrayon de 5 pixel ...ok je voir ça merci pour le conseil ;)

Commentaire de Dri le 04/06/2003 17:43:15

On la trouve où allegro?

Commentaire de GoldenEye le 04/06/2003 17:55:13

www.allegro.cc

Commentaire de Dri le 04/06/2003 20:01:56

merci d'avoir repondu, j'avai déja fait une recherche en attendant mais merci :)

Commentaire de OsM3K le 17/07/2003 20:36:42

;) bon courage AmK ;)

Commentaire de 751 le 26/07/2003 19:07:53

Où est-ce que l'on peut trouver un bon tutorial en français sur allegro complet ?.  

Commentaire de OsM3K le 26/07/2003 22:19:40

www.programmationworld.com ;)

Commentaire de 751 le 28/07/2003 18:16:16

Merci  ;)

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Juin 2013
LMMJVSD
     12
3456789
10111213141516
17181920212223
24252627282930

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,889 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales