|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
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!!
Fichier Zip
Pour les "Membres Club", vous pouvez 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
Sources de la même categorie
Commentaires et avis
|
|