Bienvenue, Invité. Merci de vous connecter ou de vous inscrire. Avez-vous oublié d'activer ?

Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.


Sujets - Nexus

Pages: [1]
1
Discussions générales / SFML Game Development -- Un livre sur SFML
« le: Juin 25, 2013, 09:02:02 pm »
Bonjour!

J'aimerais annoncer que le premier livre sur SFML avec le titre SFML Game Development a été publié!

Il est disponible sur http://www.packtpub.com/sfml-game-development/book.

Le livre a été écrit par les utilisateurs Groogy, Grimshaw et moi pendant une demi-année. Nous voulons remercier Laurent pour  tous ses efforts, à commencer par SFML elle-même, mais aussi ses retours concernant le texte et le code. Ce livre n'existerait pas sans lui.

Dans le livre, nous expliquons le processus du développement de jeux vidéo en utilisant SFML comme bibliothèque multimédia. Un jeu complet est realisé, dans lequel il faut piloter un avion et combattre des ennemis pour arriver au bout du niveau.

SFML Game Development commence avec des sujets basiques, comme la création des fenêtres ou le dessin des sprites. Après, notre architecture de code est introduite : La gestion des ressources, le monde contenant des entités, un système d'événements, et un graphe de scène. Nous implémentons le gameplay : Des avions, des missiles, des ennemis et des power-ups. L'interaction entre les éléments est considérée et un algorithme de collision simple est présenté. Ensuite, nous nous concentrons sur le sujet de dessin avec SFML et discutons l'API des vertex arrays et des transformations. Une animation, un système de particules et un effet de shader sont implementés. La gestion de sons et de musique est expliquée, incluant des sujets plus avancés, comme des sons spaciaux. Finalement, nous développons le mode multijoueur utilisant le réseau local et internet.

Le livre est accompagné par le code du jeu, qui est écrit en utilisant plusieurs techniques modernes de C++11. Chaque chapitre introduit des nouvelles fonctionnalités que le lecteur ou la lectrice peut directement suivre dans le code. Pas à pas, le jeu est construit, jusqu'à ce que les techniques adressées dans le livre soient implementées.

Voilà une capture d'écran du jeu :


Nous espérons que SFML Game Development pouisse aider les développeurs ambitieux à réaliser des projets avec SFML ! Amusez-vous bien !

2
Projets SFML / Zloxx II - Un Jump'n'Run d'action
« le: Juillet 01, 2012, 01:04:43 pm »
Zloxx II

J'aimerais vous présenter un plus grand projet de moi, il s'agit d'un jeu de plates-formes qui s'appelle "Zloxx II". Le jeu a été inspiré par des Super Mario diverses, quelques jeux Nifflas, et probablement beaucoup plus.

Ton but se compose de vaincre des ennemies, de collecter des objets, des armes et des vestes spéciales, et d'arriver à la fin de chaque niveau.






Le jeu est freeware, mais au moment, il ne marche que sur Windows. Plus de captures d'écran et un lien pour télécharger sont disponibles sur ma page d'accueil. Amusez-vous! :)

3
Projets SFML / Thor 2.0
« le: Mars 25, 2012, 12:07:50 pm »
[Ouvert de nouveau a cause de l'échange de forum]


Thor 2.0

Entretemps, j'ai fini d'adapter la convention de nommage et de changer quelques autres choses (liste détaillé). En deux mots, j'utilise maintenant GitHub a j'ai délocalisé une partie de Thor dans une bibliothèque autonome.

Maintenant je peux commencer à améliorer des parties différentes de la bibliothèque Thor. Pour séparer mieux du development de Thor 1, j'ai ouvert un nouveau thread. Ici, je vous informe régulièrement des nouvelles. Si vous avez des suggestions, discutez les ici s'il vous plaît :)

Links
Page web du projet Thor
GitHub

4
Projets SFML / Aurora
« le: Mars 25, 2012, 12:07:14 pm »
[Ouvert de nouveau a cause de l'échange de forum]
[Corrigé les fautes de l'exemple Dispatcher]


Aurora

Bien que ce projet et SFML ne sont pas directement liés, je pense que quelques gens peuvent le trouver intéressant. Originalement une partie de Thor, Aurora est maintenant une bibliothèque autonome qui offre des fonctionnalités diverses pour C++.

Une exemple d'un smart pointer:
#include <Aurora/SmartPtr/CopiedPtr.hpp>

namespace sf { class Drawable; } // Forward declaration is enough

struct GameObject
{
        aur::CopiedPtr<sf::Drawable> drawable;
};

#include <SFML/Graphics.hpp>

int main()
{
        GameObject a, b, c;
        a.drawable.reset(new sf::RectangleShape);
        b.drawable.reset(new sf::Sprite); // different derivates
        c = a; // performs a deep copy
} // deletes everything correctly
sf::Drawable est une classe de base abstraite, mais on peut la mettre dans un smart-pointer. En conséquence, c'est possible de faire des copies comme d'habitude -- l'objet derivé (sf::RectangleShape) est copié correctment. Tout ça se passe sans un constructeur par recopie, un opérateur d'affectation, ou une fonction clone() virtuelle.

Un autre exemple: Les dispatchers qui sont capable de choisir la fonction correcte d'une nombre de candidates, tandis que les argument soyent seulement connu pendant l'éxecution du programme. Comme ça, on peut utiliser des classes de base (comme Object dans l'exemple), mais l'interaction entre deux objets peut être réalisée avec toute l'information des types. Il ne faut pas différentier des cas.
#include <Aurora/Dispatch.hpp>
#include <iostream>

// Example class hierarchy
class Object { public: virtual ~Object() {} };
class Asteroid : public Object {};
class Ship     : public Object {};

// Functions for collision with different argument types
void collision(Asteroid*, Asteroid*)    { std::cout << "Asteroid-Asteroid\n"; }
void collision(Asteroid*, Ship*)        { std::cout << "Asteroid-Ship\n";     }
void collision(Ship*,     Ship*)        { std::cout << "Ship-Ship\n";         }

int main()
{
    // Create dispatcher and register functions
    aur::DoubleDispatcher<Object*> dispatcher;
    dispatcher.add<Asteroid, Asteroid>(&collision);
    dispatcher.add<Asteroid, Ship>    (&collision);
    dispatcher.add<Ship,     Ship>    (&collision);

    // Base class pointers (no static type information about derived classes)
    Object* a = new Asteroid;
    Object* s = new Ship;

    // Invoke functions, let dispatcher choose the correct overload
    dispatcher.call(a, s); // Output: "Asteroid-Ship"
    dispatcher.call(a, a); // Output: "Asteroid-Asteroid"
    dispatcher.call(s, s); // Output: "Ship-Ship"
   
    delete a;
    delete s;
}

Aurora utilise la license zlib/libpng. Parce qu'il s'agit d'une bibliothèque header-only, vous n'avez pas besoin de compiler ou lier quelque chose.

Links
Page web du projet Aurora
GitHub

P.S. Excusez les expressions spécifiques de C++, je n'en connais pas toutes en français ;)

Pages: [1]