Eltanin

Eltanin

Learn Humanity
Nous sommes actuellement le 28 Avr 2024, 22:06

Le fuseau horaire est UTC+1 heure [Heure d’été]




Publier un nouveau sujet Répondre au sujet  [ 1 message ] 
Auteur Message
MessagePublié: 18 Sep 2008, 20:00 
Hors-ligne
Supérieur
Avatar de l’utilisateur

Inscription : 01 Mai 2004, 11:57
Message(s) : 1161
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.


Introduction

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 "plug" 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.


Etape 1 : Télécharger le bon logiciel

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

http://www.codeblocks.org/downloads/5

(Téléchargez "codeblocks-8.02mingw-setup.exe", 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).


Etape 2 : Apprendre à  programmer

Tout est impeccablement expliqué sur le site que voici :

http://www.siteduzero.com/

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

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.


Etape 3 : Télécharger et installer SFML

http://www.sfml-dev.org/download-fr.php

Sur cette page, téléchargez "SDK complet SFML" (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 :

www.sfml-dev.org a écrit:
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



Etape 4 : Créer un projet

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 > New > Project, sélectionnez "Console application" et cliquez sur "Go".

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 "Hello World !" 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 ("monProjet"), à  côté du fichier du projet. Dans ce même répertoire, enregistrez également l'image que voici (ou une autre)...

Image

... en vous assurant de l'avoir bien renommée "masque.png".

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

Citer:
-lsfml-graphics
-lsfml-window
-lsfml-system


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.

Citer:
#include <iostream>
#include <SFML/System.hpp>
#include <SFML/Graphics.hpp>

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

int main()
{
App.UseVerticalSync(true);
sf::Image monImage;
monImage.LoadFromFile("masque.png");
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;
}


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 : http://www.sfml-dev.org/tutorials/1.3/index-fr.php

_________________
Spoiler! :
N'oubliez jamais que vous êtes unique, comme 7 milliards d'autres humains sur Terre.


Haut
 Profil  
 
Afficher les messages publiés depuis :  Trier par  
Publier un nouveau sujet Répondre au sujet  [ 1 message ] 

Le fuseau horaire est UTC+1 heure [Heure d’été]


Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 4 invité(s)


Vous ne pouvez pas publier de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum

Recherche de:
Aller vers :  
cron
Powered by phpBB® Forum Software © phpBB Group
Traduction et support en françaisHébergement de site