0% ont trouvé ce document utile (0 vote)
184 vues4 pages

Programmation Audio et Graphique SDL

Le document décrit comment créer une application en utilisant les bibliothèques SDL, SDL_image, SDL_mixer et SDL_ttf pour la gestion des sons, des images, des polices et de l'affichage graphique. Il contient des exemples de code pour charger et jouer de la musique et des sons, afficher du texte et des images à des positions données.

Transféré par

yossra Tlili
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats TXT, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
184 vues4 pages

Programmation Audio et Graphique SDL

Le document décrit comment créer une application en utilisant les bibliothèques SDL, SDL_image, SDL_mixer et SDL_ttf pour la gestion des sons, des images, des polices et de l'affichage graphique. Il contient des exemples de code pour charger et jouer de la musique et des sons, afficher du texte et des images à des positions données.

Transféré par

yossra Tlili
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats TXT, PDF, TXT ou lisez en ligne sur Scribd

#include <stdio.

h>
#include <stdlib.h>
#include <stdbool.h>
#include <SDL/SDL.h>
#include <SDL/SDL_image.h>
#include <SDL/SDL_mixer.h>
#include <SDL/SDL_ttf.h>

int main()
{
/***********patie sons*****/

Mix_AllocateChannels(20);
SDL_WM_SetCaption("SDL_Mixer", NULL);
if(Mix_OpenAudio(44100, MIX_DEFAULT_FORMAT, MIX_DEFAULT_CHANNELS, 1024) == -
1) //Initialisation de l'API Mixer
{
printf("%s", Mix_GetError());
}

Mix_Music *musique;
Mix_Chunk *sound;

musique = Mix_LoadMUS("musique.mp3"); //Chargement de la musique


sound = Mix_LoadWAV("[Link]");//Chargement de son de bouton
Mix_VolumeMusic(MIX_MAX_VOLUME);// volume au max
Mix_PauseMusic();// l'arret de la musique
Mix_ResumeMusic();// resumer la musique

/****** kan theb tna9es fel 7es *****/


Mix_VolumeMusic(MIX_MAX_VOLUME/3);// kan t7eb tzid tna9es fel 7ess
ekteb par exemple ( Mix_VolumeMusic(MIX_MAX_VOLUME/6); )
Mix_ResumeMusic();

Mix_PlayMusic(musique, -1); //Jouer infiniement la musique

/************Partie TTF(ttf)************/

TTF_Init();//initialisation de TTF
TTF_Font *police = NULL;//creation de pointeur Font

SDL_Color couleurBlanche = {255,255,255};// couleur de texte(blanche)


SDL_Color couleurNoir = {255,0,0};// couleur de texte(noir)

police = TTF_OpenFont("[Link]", 30);// th7ot esm l font (exemple ma7touta


"[Link]") w lkobr ta3 lktiba(police) (exemple 30)
SDL_Surface *texte;//creation de surface texte
texte = TTF_RenderText_Blended(police, "lektiba elli t7eb t'afficheha",
couleurBlanche);

SDL_Rect position_text={900,185};//position de texte (win t7eb t'affichi


text)
/***********partie graphique*****/
/****chargement de background et des image (ouverture d'une fenetre)/

SDL_Surface * ecran=NULL;
SDL_Surface * background=NULL;
SDL_Surface * image=NULL;

background=IMG_Load("esm_fichier.png");//chragement des image


image=IMG_Load("esm_fichier.png");
ken .bmp twalli image=IMG_LoadBMP("[Link]");
SDL_Event event;//declaration de l'evenement
SDL_Rect positionbackground,positionimage;// declaration de la position

/*****initialisation des positions des images******/

positionbackground.x= ;
positionbackground.y= ;
positionimage.x= ;
positionimage.y= ;

ecran = SDL_SetVideoMode(1200, 600, 32, SDL_HWSURFACE |


SDL_DOUBLEBUF);//configuration de l'ecran (t7ot longeur w largeur ta3 l'ecran)
ecran = SDL_SetVideoMode(1200, 600, 32, SDL_HWSURFACE |SDL_DOUBLEBUF |
SDL_FULLSCREEN);//configuration de l'ecran et sa mise en plein ecran)

/********* affichage de background sur l'ecran****/


SDL_BlitSurface(background, NULL, ecran, NULL);
SDL_Flip(ecran);//dima t7otha ba3d kol bloc ta3 SDL_BlitSurface(kima el
refresh medem baddalt 7ajet)
/**********************************/

/********* affichage d'une image sur l'ecran en position ****/


SDL_BlitSurface(image, NULL, ecran ,&positionimage);// adresse el
position li teb3et'ha
SDL_Flip(ecran);//dima t7otha ba3d kol bloc ta3 SDL_BlitSurface
/**********************************/
while (SDL_WaitEvent(&event))
{
switch ([Link])
{

case SDL_KEYDOWN://clavier
{if ([Link]==SDLK_DOWN)
SDL_BlitSurface(image,NULL, ecran, &positionimage );
SDL_Flip(ecran);

if(Mix_OpenAudio(44100, MIX_DEFAULT_FORMAT, MIX_DEFAULT_CHANNELS, 1024)


== -1){printf("%s",Mix_GetError()); }
musique = Mix_LoadMUS("esm musique.mp3");
Mix_PlayMusic(esm musique, -1);
else if([Link]==SDLK_UP)
{
SDL_BlitSurface(image,NULL, ecran, &positionimage );
SDL_Flip(ecran);

if(Mix_OpenAudio(44100, MIX_DEFAULT_FORMAT, MIX_DEFAULT_CHANNELS, 1024)


== -1){printf("%s",Mix_GetError()); }
musique = Mix_LoadMUS("esm musique.mp3 ");
ken .wav twalli musiqe = Mix_LoadWAV("[Link]");
Mix_PlayMusic(esm musique, -1);
}

break;
}

case SDL_MOUSEMOTION:// mouvement de sourie

{
printf("Souris en position %d %d\n",[Link].x, [Link].y);//
yekteblek les coordonnees ta3 sourie mta3ek fel terminal
}

if ([Link] == SDL_BUTTON_LEFT)
{
if(([Link].x>277) && ([Link].x<=377) &&
([Link].y>=70) && ([Link].y <=170))
{

if(Mix_OpenAudio(44100, MIX_DEFAULT_FORMAT, MIX_DEFAULT_CHANNELS, 1024)


== -1){printf("%s",Mix_GetError()); }
musique = Mix_LoadMUS("musique.mp3");
Mix_PlayMusic(musique, -1);

}
if(([Link].x>50) && ([Link].x<=150) && ([Link].y>=70)
&& ([Link].y <=170))
{

if(Mix_OpenAudio(44100, MIX_DEFAULT_FORMAT, MIX_DEFAULT_CHANNELS, 1024)


== -1){printf("%s",Mix_GetError()); }
musique1 = Mix_LoadMUS("musique1.mp3");
Mix_PlayMusic(musique1, -1);

}break;

SDL_BlitSurface(back, NULL, ecran, &positionback);


SDL_BlitSurface(elephant, NULL, ecran, &positionelephant);
SDL_BlitSurface(singe, NULL, ecran, &positionsinge);
positionTexte.x = 50 ;
positionTexte.y = 0 ;
SDL_BlitSurface(texte, NULL, ecran, &positionTexte);

SDL_Flip(ecran); // mise a jour


}
case SDL_QUIT://leflsa l7amra li tsakker menha melle5er
{
/***on libere la memoire et on quitte***/
SDL_FreeSurface(background);
SDL_FreeSurface(image);
SDL_FreeSurface(texte);
TTF_CloseFont(police) ;
TTF_Quit() ;
Mix_FreeMusic(musique);
Mix_CloseAudio();
SDL_Quit(); // Sortie mel fenetre SDL
/**********************/

return EXIT_SUCCESS;

}//switch
}//while

Vous aimerez peut-être aussi