Accueil > > > ALLEGRO -> LES BASES [VC++ 6.0]
ALLEGRO -> LES BASES [VC++ 6.0]
Information sur la source
Description
Ce petit début vous expliquera un peu comment utiliser la bibliothèque graphique, très pratique pour le dévellopement de jeux, la plus simple que j'ai rencontré, associé au C++ ... Pas de grande difficulté pour ceux qui connaisse un peu de C++, et ceux qui sont fort en anglais auront d'autant plus facile à se rappeler les noms des fonction, tout à fait anglais standard ^^ i.e. : load_bitmap(...); je crois que ceux qui connaissent l'anglais, et même ceux qui ne le connaissent pas, devrait comprendre l'action de cette fonction sans trop de problème ...
Source
- /*
- * Ce programme va servir à vous initialiser à la programmation
- * avec la biblio Allegro, il va vous montrer comment charger un
- * bitmap pour le mettre en curseur et comment faire pour que ce
- * curseur change lorsque par exemple la souris passe au dessus
- * d'un bouton
- * Programmed by [DmX]
- */
-
- #include <allegro.h> // Pour permettre l'utilisation de la bibliothèques
-
- BITMAP *buffer,
- *mouse,
- *MouseOver;
-
- // Déclaration d'une palette, pour la couleur...
- PALETTE palette;
-
- int main( void )
- {
- /******************** Initialisations allegro ********************/
- /*
- * L'initialisation allegro sert a installer en qq sorte tt les driver
- * si on install le clavier aver install_keyboard() de allegro on pourra
- * l'utiliser dans les programmes\jeux allegro dans leskel cette fonctions
- * est appelee.
- * toutes les initialisatiosn servent a rendre les different drivers utilisable
- */
- // cette fonction est la mm ke allegro_init( );
- install_allegro ( SYSTEM_AUTODETECT, &errno, atexit );
- // initialisation du clavier, pour pouvoir utiliser readkey( ); et le tableau key[]
- install_keyboard ( );
- // initialisation de la souris, pour pouvoir change son curseur et l'afficher
- install_mouse ( );
- // le texte sera en mode transparence
- text_mode ( -1 );
- set_color_depth( 24 );
- if(set_gfx_mode( GFX_AUTODETECT, 640, 480, 0, 0 ) < 0 )
- {
- set_gfx_mode ( GFX_TEXT, 0, 0, 0, 0 );
- allegro_message ( "Ce programme ne peut pas etre initialise!\n" );
- exit( 1 );
- }
- /******************** Fin des initialisations ********************/
-
- //Crée les deux bitmaps
- buffer = create_bitmap ( 640, 480 );
- // la souris sera le bmp Player.bmp
- mouse = load_bitmap "D:\\Images\\AllegroGame\\MouseCursor3.bmp", palette );
- // curseur ki sera appliker kan la souris se trouvera o dessus du bouton
- MouseOver = load_bitmap( "D:\\Images\\AllegroGame\\Player.bmp", palette );
-
- /*
- * Les quatres appelle de fonction ki suivent servent à:
- * set_mouse_sprite( ); sert à mettre l'argument comme curseur de la souris
- * set_mouse_sprite_focus( ); set à placer le point de 'gravité' de la souris
- * ce point sera celui sur lekel la souris tournera, avancera :)
- * set_mouse_range( ); sert à limiter le deplacement de la souris, les arguments
- * seront une sorte de rectangle ki delimiterons le deplacement souris
- * position_mouse( ), place la souris a la position en X comme premier argument
- * et la position en Y comme deuxieme argument
- */
- set_mouse_sprite ( mouse );
- set_mouse_sprite_focus ( 12.5, 12.5 );
- set_mouse_range ( 100, 100, 539, 379 );
- position_mouse ( 150, 240 );
-
- //Execute la boucle tant que la touche echap n'est pas appuyée
- while( !key[ KEY_ESC ] )
- {
- /*
- * Les quatres appel de fonctions qui suivent servent à:
- * clear_bitmap( ); effacer le bitmap buffer, pour avoir un ecran vide
- * rectfill( ); creer un rectangle plein en couleur (les deux fois)
- * textout_centre( ); ecrire un texte centrer a l'ecran
- */
- clear_bitmap ( buffer );
- rectfill ( buffer, 100, 100, 539, 379, makecol( 128, 128, 128 ) );
- rectfill ( buffer, 240, 230, 400, 250, makecol( 192, 192, 255 ) );
- textout_centre ( buffer, font, "Click here !", 320, 240, makecol( 0, 0, 250 ) );
-
- //Vérifie si le pointeur est au dessus du bouton
- if( mouse_x > 240 && mouse_x < 400 &&
- mouse_y > 230 && mouse_y < 250
- )
- {
- set_mouse_sprite( MouseOver );
- textout( buffer, font,
- "La souris est au dessus du bouton",
- 10,10,
- makecol( 255, 255, 255)
- );
-
- //Vérifie si le bouton gauche est appuyé
- if( mouse_b & 1 )
- {
- clear_bitmap( buffer );
- textout_centre( buffer, font,
- "Vous etes vraiment naif !",
- 320, 230,
- makecol( 255, 255, 255 )
- );
- install_int_ex( DecrementeTimer, SECS_TO_TIMER( 1 ) );
- for ( ; CompteARebour >= 0; )
- {
- textprintf( buffer, font,
- 320, 250,
- makecol( 255, 255, 255 ),
- "%d",
- CompteARebour
- );
- }
- remove_int( DecrementeTimer );
- }
-
- //Vérifie si le bouton droit est appuyé
- if( mouse_b & 2 )
- {
- textout( buffer, font,
- "Pas avec le bouton droit !",
- 10, 30,
- makecol( 255, 255, 255 )
- );
- }
- }
- // si la souris ne se trouve pas sur(au dessus) le(du) bouton
- else
- {
- // Je remet le curseur initial
- set_mouse_sprite( mouse );
- // J'écris les différent texte
- textout( buffer, font,
- "La souris n\'est pas au dessus du bouton!",
- 10, 10,
- makecol( 255, 255, 255 )
- );
-
- // si le bouton droit est appuye en dehors du bouton
- if ( mouse_b & 1 )
- {
- textout( buffer, font,
- "Appuyez sur le bouton!!!",
- 10, 30,
- makecol( 255, 255, 255 )
- );
- }
-
- // si le bouton droit de la souris est appuye en dehors du bouton
- if ( mouse_b & 2 )
- {
- textout( buffer, font,
- "Pas avec le droit! :\\",
- 10, 30,
- makecol( 255, 255, 255 )
- );
- }
- }
-
- //Affiche la souris sur le bitmap 'buffer'
- show_mouse ( buffer );
- //Affiche buffer à l'écran
- blit ( buffer, screen, 0, 0, 0, 0, 640, 480 );
- }
- /*
- * detruit le bitmap, en d'autre mot: desalloue la memoire allouee
- * car le bitmap mouse est alloue ss le savoir avec load_bitmap
- * ki va stocké le bitmap en memoire
- */
- destroy_bitmap( mouse );
-
- return 0;
- }
- END_OF_MAIN( );
/*
* Ce programme va servir à vous initialiser à la programmation
* avec la biblio Allegro, il va vous montrer comment charger un
* bitmap pour le mettre en curseur et comment faire pour que ce
* curseur change lorsque par exemple la souris passe au dessus
* d'un bouton
* Programmed by [DmX]
*/
#include <allegro.h> // Pour permettre l'utilisation de la bibliothèques
BITMAP *buffer,
*mouse,
*MouseOver;
// Déclaration d'une palette, pour la couleur...
PALETTE palette;
int main( void )
{
/******************** Initialisations allegro ********************/
/*
* L'initialisation allegro sert a installer en qq sorte tt les driver
* si on install le clavier aver install_keyboard() de allegro on pourra
* l'utiliser dans les programmes\jeux allegro dans leskel cette fonctions
* est appelee.
* toutes les initialisatiosn servent a rendre les different drivers utilisable
*/
// cette fonction est la mm ke allegro_init( );
install_allegro ( SYSTEM_AUTODETECT, &errno, atexit );
// initialisation du clavier, pour pouvoir utiliser readkey( ); et le tableau key[]
install_keyboard ( );
// initialisation de la souris, pour pouvoir change son curseur et l'afficher
install_mouse ( );
// le texte sera en mode transparence
text_mode ( -1 );
set_color_depth( 24 );
if(set_gfx_mode( GFX_AUTODETECT, 640, 480, 0, 0 ) < 0 )
{
set_gfx_mode ( GFX_TEXT, 0, 0, 0, 0 );
allegro_message ( "Ce programme ne peut pas etre initialise!\n" );
exit( 1 );
}
/******************** Fin des initialisations ********************/
//Crée les deux bitmaps
buffer = create_bitmap ( 640, 480 );
// la souris sera le bmp Player.bmp
mouse = load_bitmap "D:\\Images\\AllegroGame\\MouseCursor3.bmp", palette );
// curseur ki sera appliker kan la souris se trouvera o dessus du bouton
MouseOver = load_bitmap( "D:\\Images\\AllegroGame\\Player.bmp", palette );
/*
* Les quatres appelle de fonction ki suivent servent à:
* set_mouse_sprite( ); sert à mettre l'argument comme curseur de la souris
* set_mouse_sprite_focus( ); set à placer le point de 'gravité' de la souris
* ce point sera celui sur lekel la souris tournera, avancera :)
* set_mouse_range( ); sert à limiter le deplacement de la souris, les arguments
* seront une sorte de rectangle ki delimiterons le deplacement souris
* position_mouse( ), place la souris a la position en X comme premier argument
* et la position en Y comme deuxieme argument
*/
set_mouse_sprite ( mouse );
set_mouse_sprite_focus ( 12.5, 12.5 );
set_mouse_range ( 100, 100, 539, 379 );
position_mouse ( 150, 240 );
//Execute la boucle tant que la touche echap n'est pas appuyée
while( !key[ KEY_ESC ] )
{
/*
* Les quatres appel de fonctions qui suivent servent à:
* clear_bitmap( ); effacer le bitmap buffer, pour avoir un ecran vide
* rectfill( ); creer un rectangle plein en couleur (les deux fois)
* textout_centre( ); ecrire un texte centrer a l'ecran
*/
clear_bitmap ( buffer );
rectfill ( buffer, 100, 100, 539, 379, makecol( 128, 128, 128 ) );
rectfill ( buffer, 240, 230, 400, 250, makecol( 192, 192, 255 ) );
textout_centre ( buffer, font, "Click here !", 320, 240, makecol( 0, 0, 250 ) );
//Vérifie si le pointeur est au dessus du bouton
if( mouse_x > 240 && mouse_x < 400 &&
mouse_y > 230 && mouse_y < 250
)
{
set_mouse_sprite( MouseOver );
textout( buffer, font,
"La souris est au dessus du bouton",
10,10,
makecol( 255, 255, 255)
);
//Vérifie si le bouton gauche est appuyé
if( mouse_b & 1 )
{
clear_bitmap( buffer );
textout_centre( buffer, font,
"Vous etes vraiment naif !",
320, 230,
makecol( 255, 255, 255 )
);
install_int_ex( DecrementeTimer, SECS_TO_TIMER( 1 ) );
for ( ; CompteARebour >= 0; )
{
textprintf( buffer, font,
320, 250,
makecol( 255, 255, 255 ),
"%d",
CompteARebour
);
}
remove_int( DecrementeTimer );
}
//Vérifie si le bouton droit est appuyé
if( mouse_b & 2 )
{
textout( buffer, font,
"Pas avec le bouton droit !",
10, 30,
makecol( 255, 255, 255 )
);
}
}
// si la souris ne se trouve pas sur(au dessus) le(du) bouton
else
{
// Je remet le curseur initial
set_mouse_sprite( mouse );
// J'écris les différent texte
textout( buffer, font,
"La souris n\'est pas au dessus du bouton!",
10, 10,
makecol( 255, 255, 255 )
);
// si le bouton droit est appuye en dehors du bouton
if ( mouse_b & 1 )
{
textout( buffer, font,
"Appuyez sur le bouton!!!",
10, 30,
makecol( 255, 255, 255 )
);
}
// si le bouton droit de la souris est appuye en dehors du bouton
if ( mouse_b & 2 )
{
textout( buffer, font,
"Pas avec le droit! :\\",
10, 30,
makecol( 255, 255, 255 )
);
}
}
//Affiche la souris sur le bitmap 'buffer'
show_mouse ( buffer );
//Affiche buffer à l'écran
blit ( buffer, screen, 0, 0, 0, 0, 640, 480 );
}
/*
* detruit le bitmap, en d'autre mot: desalloue la memoire allouee
* car le bitmap mouse est alloue ss le savoir avec load_bitmap
* ki va stocké le bitmap en memoire
*/
destroy_bitmap( mouse );
return 0;
}
END_OF_MAIN( );
Conclusion
Biensur pour, pouvoir compiler ce programme vous aurez besoin de la librairie Allegro, et lisez bien l'aide à l'utilisation!!!!! :)
pas de bugs avec VC++ 6.0!!
Sources du même auteur
Sources de la même categorie
Commentaires et avis
|
Derniers Blogs
SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko
Logiciels
Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning
|