Version svg : Premier jet
Date début du projet : 04 Mai 2009
Langage de programmation : C++, si script : python
Librairie : SFML (Son, Image, Event, (Net))
Graphisme : .png
Outils de développement : SVN, ViM, gdb, valgrind, CMake
Outils de dessin : Inkscape, Gimp
Code : Code svn navigable
SVN : http://subversion.assembla.com/svn/divers-trizo/vehiouch/
Documentation de SFML : Sur le site officiel (Doxygen, tutos)
J'utilise CMake pour générer les outils de compilation.
Comme SFML n'est pas super connu encore, j'ai préféré le régler à la main.
L'installation dépend de chaque platforme, et il faut donc préciser où se trouve la librairie à la main.
Dans le fichier CMakeCache.txt, ajoutez ceci :
sfml_include_dir:FILEPATH=/usr/include/SFML sfml_lib_dir:FILEPATH=/usr/lib/ sfml_graphics_lib_name:STRING=sfml-graphics sfml_system_lib_name:STRING=sfml-system sfml_window_lib_name:STRING=sfml-window
Il est peut-être nécessaire de changer les deux FILEPATH pour votre système.
Ensuite, la création des outils de compilation. Pour voir les outils disponibles sur votre plateforme :
cmake --help
cmake . -G"Unix Makefiles"
En remplaçant “Unix Makefiles” par la cible choisie.
Vous avez votre projet comme vous le souhaitez. (Codeblocks, Makefile, etc)
(Voir l'image)
Ce serait bien de choisir sa couleur. Comme SFML ne supporte pas le svg ce sera un peu plus difficile. J'ai vu qu'on pouvait appliquer des couleurs aux textures. Je vais essayer de faire des tests la dessus. Une surface blanche mettre de la couleur. Si ça fonctionne alors je pourrais faire d'un véhicule plusieurs images pour personnaliser la couleur.
⇒ Fonctionne très bien
Idée : Comme ça fonctionne bien, je vais faire un format propre au jeu pour faire un sprite. Un sprite sera composé de plusieurs images avec des positions fixes. En attributs des images on pourra avoir :
Je crois que je vais faire ça en XML. Il y a des parseurs déjà fait, et c'est un format de fichier très connu. Donc ce sera éditable facilement par tout le monde.
J'essairais d'interfacer toute les classes de SFML avec les méthodes que j'utilise. D'une part parce que j'aime pas les méthodes qui commencent avec des majuscule, d'autre part _et c'est le plus important_ si je change de bibliothèque multimedia, j'aurais toujours la même interface pour mon jeu. Si jamais d'autre personnes travaillent un jour avec moi ça permet de ne pase se perdre.
Pour ça je vais faire l'UML en pensant seulement à cette première version. Ca permet d'avoir un rendu rapide et que la motivation ne retombe pas. Sans pour autant faire de la merde que je ne pourrais pas réutiliser.
En parrallèle je vais créer des images pour tester tout ça.
Ce premier jet ne prend pas en compte les collisions, ça évite une prise de tête pour rien : l'idée devrait être retravaillée plus tard avec les projectiles et les décors destructibles de toute façon.
Pour le zoom/dezoom et avoir un hud :
App.SetView(View); // Afficher le jeu... App.SetView(App.GetDefaultView()); // Afficher l'interface...