Leçons de niveau 15

SDL

Une page de Wikiversité.
Aller à : navigation, rechercher


Interwikis

Sur les autres projets Wikimedia :

la SDL "Simple DirectMedia Layer" est une librairie libre multiplateforme qui permet de faire des programmes avec une interface graphique, qui prend en compte les images, les sons et les entrées du clavier, de la souris, des manettes, et bien d'autres...

Installation de la libraire[modifier | modifier le wikicode]

Code de base[modifier | modifier le wikicode]

#include <stdlib.h>
#include <stdio.h>

//include de la sdl en fonction du dossier dans lequel vous l'avez installée

#include <SDL/SDL.h>

int main(int argc, char *argv[])
{
//permet de créer une variable de type sdl qui gère les surfaces

SDL_Surface *ecran = NULL;

//variable de type sdl qui gère les événements du clavier
  
SDL_Event event;

// simple int qui servira à savoir s'il faut fermer le programme ou non

int continuer = 1;

//initialisation de la sdl

SDL_Init(SDL_INIT_VIDEO);

//fonction de la sdl qui permet de nommer le programme au dessus de la fenêtre 

SDL_WM_SetCaption("Nom du programme",NULL);

/*permet de paramétrer la surface qui servira de fenêtre qui prend quatre valeur 
'définition axe x',
'définition axe y',
'en quel nombre de bits le programme doit tourner',
'le type de mémoire utilisé, ici c’est la mémoire de la RAM mais j'aurais pu mettre la mémoire de la carte graphique qui est plus rapide' */

ecran = SDL_SetVideoMode(640,480,32,SDL_SWSURFACE);

// le while qui fera tourner en boucle le cœur du programme

while(continuer)
{
/* fonction qui permet de prendre en compte les événements du clavier,
 mais en waitevent qui signifie que le programme ne fais rien tant qu’il ne reçoit aucun 
événement*/ 

 SDL_WaitEvent(&event);

 //switch qui reçoit les entrées du clavier que l’on peut ensuite conditionner avec des case 
 
 switch(event.type)
 {
     // case qui teste si l’on clique sur l'icone quitter de la fenêtre
     case SDL_QUIT:
          //cela signifie que la boucle while sera fini 
          continuer = 0;
          break;
 }
//permet de colorer la surface ecran en blanc 

SDL_FillRect(ecran,NULL,SDL_MapRGB(ecran->format,255,255,255));
//flip permet d'actualiser la surface ecran qui je vous le rappelle sert de fenêtre 
SDL_Flip(ecran);
}
//permet de désallouer tous les élément de la sdl qui on été chargés en initiant la sdl
SDL_Quit();
//retourne exit_success qui veut dire que le programme s'est bien terminé 
return EXIT_SUCCESS;
}

Liens utile[modifier | modifier le wikicode]

site officiel de SDL[modifier | modifier le wikicode]

OpenClassrooms[modifier | modifier le wikicode]

Le site contient d'excellents tutoriels qui permettent d'apprendre à utiliser le langage C et SDL.