Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
utilisateurs:amiralgaby:comment_s_adapter_a_la_sdl [Le 13/02/2021, 13:40] – créée amiralgabyutilisateurs:amiralgaby:comment_s_adapter_a_la_sdl [Le 20/05/2026, 20:14] (Version actuelle) – Apprendre à programmer avec la bibliothèque SDL Amiralgaby
Ligne 1: Ligne 1:
-====== Comment s'adapter à la bibliothèque SDL ====== +====== Premier programme avec la bibliothèque SDL ====== 
-<note>Note personnelle à moi-même : http://www.libsdl.org/languages.php</note> +Vous souhaitez utiliser la fameuse bibliothèque [[:sdl]] et elle ne vous parait pas très claire d'utilisation ?\\  
- +Parfait ^_^ cette page est là pour vous donner les bases et  vous aider à compiler votre application.
-Vous souhaitez utiliser la fameuse bibliothèque [[:sdl]] et elle ne vous paraît pas très claire d'utilisation ? +
- +
-Parfait ^_^ cette page est la pour vous permettre **de vous adapter** à la SDL. +
- +
-<note>Cette page n'est pas là pour réaliser un wiki de la SDL (d'ailleurs [[https://wiki.libsdl.org/FrontPage|le wiki est officiel]] est dispo **en anglais**)</note>+
  
 Quelques lien intéressant : Quelques lien intéressant :
 +  * **(en)**[[https://wiki.libsdl.org/wiki/index| L'index de toutes les pages de la documentation]]
   * **(en)**[[http://www.sdltutorials.com/tutorials|Quelques tutoriels des différentes bibliothèques]]   * **(en)**[[http://www.sdltutorials.com/tutorials|Quelques tutoriels des différentes bibliothèques]]
   * **(en)**[[https://wiki.libsdl.org/APIByCategory|Les fonctions rangées par Catégorie]]   * **(en)**[[https://wiki.libsdl.org/APIByCategory|Les fonctions rangées par Catégorie]]
Ligne 16: Ligne 12:
 Partons du principe que vous l'avez installée via un gestionnaire de paquet, c'est toujours plus simple sous GNU/Linux 8-) Partons du principe que vous l'avez installée via un gestionnaire de paquet, c'est toujours plus simple sous GNU/Linux 8-)
  
-Il faut simplement mettre un macro signifiant que vous l'incluez dans le fichier .c:+Il faut simplement mettre un macro signifiant que vous l'incluez dans le fichier ''.c'' :
 <code c>#include <SDL2/SDL.h></code> <code c>#include <SDL2/SDL.h></code>
 vous pouvez aussi utiliser vous pouvez aussi utiliser
 <code c>#include "SDL.h"</code> <code c>#include "SDL.h"</code>
  
-===== Et maintenons codons en C ! ===== +===== Notre premier programme ==== 
-C'était tout ? oui ! pour le moment :-| ça va se corser, c'est ça qui motive disons...+==== Et maintenons codons en C ! ==== 
 +C'était tout ? oui ! pour le moment :-| ça va se corser
  
-Allez un petit code : +<file main.c>
-<file main.c>+
 #include <SDL2/SDL.h> #include <SDL2/SDL.h>
  
Ligne 65: Ligne 61:
             }             }
         }         }
-        SDL_Delay(1); // Repose votre OS durant quelques millisecondes (très déconseillé de mettre > 100) +        SDL_Delay(1); // Repose votre OS durant quelques millisecondes (je déconseille de mettre > 10 car inutile)
-        // Votre OS ne repose très bien avec 1 milliseconde pourquoi mettre plus ?+
     }     }
  
Ligne 76: Ligne 71:
 </file> </file>
  
-Avec ce code vous devriez comprend comment faire une fenêtre et comment se passe les événements. +<note>Si vous souhaitez utiliser SDL3, il est possible de n'utiliser que des déclencheurs : Plus besoin de s'occuper de la boucle de notre programme !  [[https://gist.github.com/Amiralgaby/ecba154a09141d82f99622ef4704dea4|un exemple est disponible sur Github]] </note>
-Pour être plus clair je vais vous expliquer le concept : +
-Chaque fois que vous passer dans SDL_PollEvent vous prenez l'event un tête de file des événements et vous allez réalisé des algorithme selon son type, sa valeur.+
  
-**(en)**[[https://wiki.libsdl.org/SDL_Event|la liste des events sur le wiki officiel]] +Avec ce code vous devriez comprendre comment faire une fenêtre et comment se passe les évènements. 
 +Pour être plus clair : 
 +Chaque fois que l'application appelle SDL_PollEvent, le premier évènement qui attend d'être traité et récupéré et l'application peut le manipuler (faire des conditions, avoir un comportement selon le type ou une valeur). 
 + 
 +**(en)**[[https://wiki.libsdl.org/SDL_Event|la liste des events sur le wiki officiel]]
  
 Un Event peut avoir comme type : Un Event peut avoir comme type :
Ligne 99: Ligne 96:
  
 Il y a beaucoup d'autre type d'Event voir la doc au-dessus Il y a beaucoup d'autre type d'Event voir la doc au-dessus
-====== Compilez ! =====+ 
 +==== Compilez ! ====
 Nous utilisons SDL2 donc il faut faire : Nous utilisons SDL2 donc il faut faire :
-  gcc -o prog main.c `sdl2-config --cflags --libs`+  gcc -o prog -Wall main.c `sdl2-config --cflags --libs`
  
 +==== Executez ! ====
 Et voilà ! votre exécutable prêt à être exécuté via Et voilà ! votre exécutable prêt à être exécuté via
   ./prog   ./prog
 +===== Notre second programme ====
 +Ici on va écrire dans la fenêtre :-)
 +
 +==== Inclure une librairie annexe ====
 +Ça va être un peu spécial puisque nous aurons besoin de **[[apt>libsdl2-ttf-dev|sdl2-ttf]]**.
 +On doit bien évidemment inclure ''SDL_tff.h'' pour utiliser les fonctions de cette librairie.
 +<code c>#include "SDL_ttf.h"</code>
 +
 +==== Compilez ! ====
 +Nous utilisons SDL2 **et** SDL2_tff donc il faut faire :
 +  gcc -o window window.c -Wall `sdl2-config --cflags --libs` -lSDL2_ttf
 +
 +==== Exécutons ! ====
 +  ./window
 +
  
 +----
 +//[[:utilisateurs:Amiralgaby|Amiralgaby]] Le 06/08/2022, 10:48//