Différences
Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
utilisateurs:amiralgaby:comment_s_adapter_a_la_sdl [Le 13/02/2021, 13:40] amiralgaby créée |
utilisateurs:amiralgaby:comment_s_adapter_a_la_sdl [Le 07/07/2024, 19:08] (Version actuelle) Amiralgaby [Premier programme avec la bibliothèque SDL] utiliser SDL3 |
||
---|---|---|---|
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 paraît pas très claire d'utilisation ?\\ |
- | + | ||
- | 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. | 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 disponible **en anglais**)</note> | |
- | <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]] | ||
* **(en)**[[https://wiki.libsdl.org/SDL_Keycode|Les représentations des touches lorsqu'elle sont pressées]] | * **(en)**[[https://wiki.libsdl.org/SDL_Keycode|Les représentations des touches lorsqu'elle sont pressées]] | ||
+ | <note>Si vous souhaitez utiliser SDL3, [[https://gist.github.com/Amiralgaby/ecba154a09141d82f99622ef4704dea4|un exemple est disponible sur Github]]. Plus besoin de s'occuper de la boucle de notre programme ! Uniquement par déclencheurs</note> | ||
===== Inclure la bibliothèque dans vos projets pour l'utiliser ? ===== | ===== Inclure la bibliothèque dans vos projets pour l'utiliser ? ===== | ||
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-) | ||
Ligne 21: | Ligne 19: | ||
<code c>#include "SDL.h"</code> | <code c>#include "SDL.h"</code> | ||
- | ===== Et maintenons codons en C ! ===== | + | ===== Notre premier programme ==== |
+ | ==== Et maintenons codons en C ! ==== | ||
C'était tout ? oui ! pour le moment :-| ça va se corser, c'est ça qui motive disons... | C'était tout ? oui ! pour le moment :-| ça va se corser, c'est ça qui motive disons... | ||
- | |||
Allez un petit code : | Allez un petit code : | ||
- | <file - main.c> | + | <file C main.c> |
#include <SDL2/SDL.h> | #include <SDL2/SDL.h> | ||
Ligne 65: | Ligne 63: | ||
} | } | ||
} | } | ||
- | 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 73: | ||
</file> | </file> | ||
- | Avec ce code vous devriez comprend comment faire une fenêtre et comment se passe les événements. | + | Avec ce code vous devriez comprendre comment faire une fenêtre et comment se passe les événements. |
Pour être plus clair je vais vous expliquer le concept : | 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. | 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]] | + | **(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> | ||
+ | |||
+ | ==== Codons en C ! === | ||
+ | ici un lien vers un repo où il y a le 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// |