Académique Documents
Professionnel Documents
Culture Documents
Deuxième étape (à rendre au plus tard le lundi 11 décembre à 22h) :
Vous devez être capable de déplacer votre raquette horizontalement avec les flèches gauche et
droite du clavier et de lancer une balle en appuyant sur la touche espace.
Troisième étape (à rendre au plus tard le lundi 18 décembre à 22h):
Vous devez pouvoir faire rebondir la balle sur la raquette et sur les murs.
Lorsque la balle touche une brique, celle-ci est détruite.
Vous calculerez un score en tenant compte des briques cassées. Vous afficherez le score sur l’écran.
Quatrième étape (à rendre au plus tard le samedi 23 décembre à 22h):
Vous devez ajouter un niveau : lorsque toutes les briques sont cassées, vous devez proposer une
nouvelle configuration de briques lue à partir d’un fichier texte où chaque caractère présent (par
exemple X) représente une brique, chaque espace représente l’absence de briques.
BONUS : On peut aussi par exemple proposer un fichier texte plus élaboré où des caractères distincts
représentent des briques de type différent (détruite en deux coups, indestructible…)
Par exemple, le fichier contenant :
X Y X Y X Y X Y
Y X Y X Y X Y X
X X X X X X X X
YXYXYXYXYXYXYXYX
X X X X X X X X
X X X X X X X X
Y Y Y Y Y Y Y Y
XYXYXYXYXYXYXYXY
permet d’afficher le mur de briques suivant :
Indications
Première étape
Pour créer une fenêtre d’affichage, il faut utiliser la fonction SDL_CreateWindow.
Pour afficher une image, plusieurs étapes sont nécessaires :
- Il faut d’abord charger l’image avec la fonction IMG_Load(« chemin de l’image »), qui
retourne un pointeur sur une SDL_Surface (pixels bruts).
- Il faut ensuite créer une texture à partir de cette surface, en adaptant (taille, couleur…)
l’image chargée à un renderer, créé pour la fenêtre avec SDL_CreateRenderer. Pour cela on
utilise la fonction SDL_CreateTextureFromSurface, qui prend 2 paramètres : le renderer et
la surface, et retourne un pointeur sur une SDL_Texture.
- On « copie » ensuite tout ou partie de la texture dans le renderer avec la fonction
RenderCopy, qui prend en paramètre le renderer, la texture, la partie de la texture à copier
et l’endroit où la copier. Ces deux derniers paramètres sont des pointeurs sur des SDL_Rect.
Pour utiliser l’image complète on peut aussi passer le pointeur NULL en lieu et place du
premier rectangle. Pour utiliser la totalité de la surface du renderer on peut aussi passer le
pointeur NULL en lieu et place du deuxième rectangle.
Le renderer contient l’ensemble des éléments à rendre à l’écran. Il stocke les éléments du rendu en
mémoire. Pour les faire afficher réellement, il faut utiliser la fonction
SDL_RenderPresent(renderer).
Tout travail sur des images doit être placé entre les appels IMG_Init() et IMG_Quit().
Tous vos objets (texture, surface, renderer, écran…) doivent être détruit ou libérés lorsqu’ils ne sont
plus utiles. Avant d’utiliser les fonctions de la SDL il faut appeler SDL_Init() et SDL_Quit() à la fin du
programme.