Si le titre du sujet vous interpelle, voici une piste à  suivre pour parvenir à  ce noble dessein. A la base, je rédige ceci à  l'attention de mon frère, mais autant que chacun puisse en profiter.

Réjouissez-vous, aucune connaissance préalable n'est requise. J'essaye toujours de me mettre à  la portée du premier touriste venu. 


[b:35fqzfhr]Introduction[/b:35fqzfhr]

De quoi allons-nous avoir besoin ?

Tout d'abord, d'un logiciel de programmation, et d'un bon tutorial (étapes 1 et 2). Cela vous permettra de créer des fichier .exe (ou autres, si vous n'êtes pas sous Windows). Mais vos possibilité se limiteront à  :
- Afficher du texte blanc dans une boîte noire.
- Lire et écrire dans un fichier texte.

Pour afficher des sprites colorés dans une belle fenêtre, vous aurez besoin d'une librairie graphique. C'est un sorte de &quot;plug&quot; au logiciel de programmation, qui permet d'afficher des images, de les faire bouger, zoomer, tourner... Bref, tout ce qu'il faut pour faire un jeu 2D.

Il existe de nombreuses librairies graphiques. Celle que je propose se nomme SFML (Simple and Fast Multimedia Library). Pourquoi ce choix ? Parce que, comme son nom l'indique, c'est la plus simple et la plus rapide pour les jeux 2D. Vous pourrez afficher des milliers d'images à  l'écran sans que ça rame.


[b:35fqzfhr]Etape 1 : Télécharger le bon logiciel[/b:35fqzfhr]

Je préconise Code::Blocks, téléchargeable ici :

<!-- m --><a class="postlink" href="http://www.codeblocks.org/downloads/5">http://www.codeblocks.org/downloads/5</a><!-- m -->

(Téléchargez &quot;codeblocks-8.02mingw-setup.exe&quot;, la version à  19 Mo, pas l'autre)

Pourquoi celui-là  plus qu'un autre ?
- C'est un logiciel libre (si ça en fait kiffer certains).
- Il est rapide.
- Les programmes créés avec sont universels. Un programme créé avec Visual Studio, par exemple, ne marchera qu'à  condition de posséder soi-même Visual Studio (ou un patch spécial).


[b:35fqzfhr]Etape 2 : Apprendre à  programmer[/b:35fqzfhr]

Tout est impeccablement expliqué sur le site que voici :

<!-- m --><a class="postlink" href="http://www.siteduzero.com/">http://www.siteduzero.com/</a><!-- m -->

Ce qui nous intéresse est dans la barre de gauche (&quot;Langage C&quot; et &quot;Langage C++&quot;).

Les tutoriaux sont extrêmement clairs, complets et progressifs - et surtout, ne nécessitent aucune connaissance préalable. C'est vraiment à  la portée du premier venu.

Je vous conseille de faire :
- La partie I et la partie II du tutorial C (préalable nécessaire au tutorial C++).
- La partie I du tutorial C++.

Les autres parties vous expliquent comment se servir de librairies graphiques particulières (SDL pour le C, Qt pour le C++). Comme c'est SFML qui nous intéresse, vous pouvez zapper ces parties.


[b:35fqzfhr]Etape 3 : Télécharger et installer SFML[/b:35fqzfhr]

<!-- m --><a class="postlink" href="http://www.sfml-dev.org/download-fr.php">http://www.sfml-dev.org/download-fr.php</a><!-- m -->

Sur cette page, téléchargez &quot;SDK complet SFML&quot; (le premier lien, normalement). A l'heure ou j'écris ces lignes, il s'agit de la version 1.3 de SFML, gardez-le à  l'esprit.

Pour Code::Blocks, vous avez juste à  faire ce qui est dit sur le tutorial du site :

[quote=&quot;www.sfml-dev.org&quot;:35fqzfhr]Une fois que vous avez téléchargé et extrait les fichiers sur votre disque dur, vous devez faire en sorte que Code::Blocks connaisse les fichiers en-têtes et bibliothèques de SFML. Il y a deux façons de le faire :

    * Copier les fichiers de développement SFML directement dans le répertoire d'installation de Code::Blocks
          o Copiez SFML-x.y\include\SFML vers le répertoire \include de votre installation de Code::Blocks (de manière à  obtenir \include\SFML)
          o Copiez les fichiers *.a de SFML-x.y\lib\mingw vers le répertoire \lib de votre installation de Code::Blocks
    * Laisser les fichiers SFML où vous voulez, et paramétrer Code::Blocks pour qu'il les trouve
          o Allez dans le menu Settings / Compiler and debugger, puis dans Global compiler settings / Search directories
          o Dans Compiler, ajoutez SFML-x.y\include
          o Dans Linker, ajoutez SFML-x.y\lib\mingw[/quote:35fqzfhr]


[b:35fqzfhr]Etape 4 : Créer un projet[/b:35fqzfhr]

Pour vous épargner les douloureuses prises de tête que m'a vallu cette étape, je la détaille intégralement, même si elle est normalement expliquée sur le site SFML (à  quelques petits... détails prêts).

Ouvrez Code::Blocks, et faites File &gt; New &gt; Project, sélectionnez &quot;Console application&quot; et cliquez sur &quot;Go&quot;.

Un menu s'ouvre.
A la première étape, sélectionnez C++.
A la deuxième étape, nommez votre projet (monProjet.cbp) et sélectionnez le répertoire où il se trouvera.
A la troisième étape, décochez Debug et cochez Release (important !).

Une arborescence apparait sur la gauche de l'écran. Double-cliquez sur le dossier Source, puis sur main.cpp. Compilez le programme &quot;Hello World !&quot; par défaut (F9).

Dans le pack SFML que vous avez préalablement téléchargé, allez dans SFML-1.3\lib\mingw et copiez les fichiers suivants :

sfml-graphics.dll
sfml-window.dll
sfml-system.dll

Collez-les des le dossier fraîchement créé de votre projet (&quot;monProjet&quot;), à  côté du fichier du projet. Dans ce même répertoire, enregistrez également l'image que voici (ou une autre)...

[img:35fqzfhr]http&#58;//img84&#46;imageshack&#46;us/img84/6839/masquehw1&#46;png[/img:35fqzfhr]

... en vous assurant de l'avoir bien renommée &quot;masque.png&quot;.

Dernière étape, pour que Code::Blocks reconnaisse les fichiers .dll : allez dans Project &gt; Build options, puis dans l'onglet Linker settings. Dans la boîte à  texte &quot;linker options&quot;, copiez-collez le texte suivant (l'ordre à  une importance) :

[quote:35fqzfhr]-lsfml-graphics
-lsfml-window
-lsfml-system[/quote:35fqzfhr]

Cliquez sur OK. Pour vérifier que tout marche, copier-collez le code suivant dans la fenêtre de code (à  la place du programme par défaut) et compilez.

[quote:35fqzfhr]#include &lt;iostream&gt;
#include &lt;SFML/System.hpp&gt;
#include &lt;SFML/Graphics.hpp&gt;

sf::RenderWindow App(sf::VideoMode(800, 600, 32), &quot;SFML Graphics&quot;);

int main()
{
    App.UseVerticalSync(true);
    sf::Image monImage;
    monImage.LoadFromFile(&quot;masque.png&quot;);
    sf::Sprite monSprite;
    monSprite.SetImage(monImage);

    while (App.IsOpened())
    {
        App.Draw(monSprite);
        sf::Event Event;
        while (App.GetEvent(Event)) if (Event.Type == sf::Event::Closed) App.Close();
        App.Display();
    }
    return EXIT_SUCCESS;
}[/quote:35fqzfhr]

Là , si ça ouvre une fenêtre contenant une image, vous pouvez être satisfait. Si ça ne marche pas, vous pouvez vous taper la tête contre les murs, ou contacter la hotline.

Dans un prochain post, nous verrons comment animer tout cela, gérer le temps, détecter un appui sur touche et jouer de la musique. Mais vous pouvez tout aussi bien vous débrouiller avec les tutoriaux du site SFML, relativement bien faits : <!-- m --><a class="postlink" href="http://www.sfml-dev.org/tutorials/1.3/index-fr.php">http://www.sfml-dev.org/tutorials/1.3/index-fr.php</a><!-- m -->