Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Bibliothèque c++] SGes

    18 août 2007 à 17:29:09

    Bonjour à tous,

    j'ai récemment fait plusieurs gestionnaires m'aidant à utiliser la bibliothèque SDL et FMOD, et en supplément un créateur de fenêtre interne, et j'ai eu envie de le distribuer, pour que d'autre personnes puissent en profiter :)

    ~ Version actuelle ~



    version : 0.1.1
    date : 12 août 2007

    ~ Bibliothèque SGes ~



    Le nom de ma bibliothèque est SGes (contraction de << SDL Gestionnaire >>). Elle contient, en tant que fichiers :
    • Un Dll (sges.dll)
    • Un fichier ".a" (libsges.a)
    • Une documentation [pas 100% complété, mais viable] (présentement seulement en français)
    • Les fichiers d'inclusion ".cpp" et ".h" contenu dans un dossier nommé "SG".


    ~ Installation et utilisation ~



    Elle est installable assez facilement sous windows avec code::blocks; comparable à l'installation de la SDL :
    • Mettre le dll dans le dossier du projet
    • dans le dossier lib de mingw, y inclure le fichier libsges.a
    • Dans le dossier include de mingw, y inclure le dossier nommé SG
    • Dans les options de projet, linkez sur le fichier libsges.a

    par contre je n'ai aucune idées comment on le fait marcher sous linux :euh:
    pour l' "include" de début de fichier, c'est :

    1. #include <SG/SGes.h>


    notez qu'il semble assez bien remplacer ceci, en même temps :

    1. #include <SDL/SDL.h>
    2. #include <SDL/SDL_image.h>
    3. #include <SDL/SDL_ttf.h>
    4. #include <SDL/SDL_rotozoom.h>
    5. #include <FMOD/fmod.h>


    :)

    ~ Dépendances ~



    La bibliothèque a quelques dépendances; les voici, avec un lien pour les obtenir :

    ~ Contenu ~



    Concrètement, la bibliothèque contient quelques classes, dont en voici une description (sommaire) directement prit de la documentation :

    SurfMan
    SurfMan est un gestionnaire graphique, qui permet de charger / décharger en mémoire images/textes/"surfaces normal" automatiquement, et de dessiner à l'écran les-dites surfaces. Une fonction intéressante est la priorité de superposition : en joignant une surface au gestionnaire, vous lui attribuez un nombre qui, plus est élevé, plus la surface sera au dessus des autres lors de l'appel d'une méthode nommé "drawAll" (qui dessinera tout les surfaces joint au gestionnaire).

    SoundMan
    SoundMan est un (petit) gestionnaire de sons, qui permet d'utiliser plusieurs type de son sans s'empêtrer dans différentes type de variable. Il gère la mémoire des sons, donc la libération des sons se fait automatiquement lors de la destruction du gestionnaire.

    StateMan
    StateMan est un gestionnaire d'état, contenant, pour chaque état, un gestionnaire de processus (<a href="proc.html">ProcMan</a>). En changeant d'état, les processus appellé diffère lorsque "runAll()" est utilisé.

    ProcMan
    ProcMan est un gestionnaire de processus. En créant un processus, une fonction/méthode est lié à au processus, et lors de l'appel du processus (run(nom) ou runAll()), la fonction/méthode est appellé. La signature(prototype) de la fonction doit par contre être :

    void nomDeLaFonction(void*,void*)

    et pour utiliser le(s) argument(s) lié à la fonction, il faut caster le(s) argument(s) de fonction.

    Windowskin
    Windowskin permet de dessiner à l'écran une fenêtre, en utilisant les "windowSkins" de Rpg Maker XP (voir dossier "windowskin skin" joint à la documentation pour des examples).

    ~ Espace sourceforge.net ~



    Mon projet est actuellement hébergé par sourceforge, et il est disponible ici :

    https://sourceforge.net/projects/libsges/

    Conclusion


    Si vous avez des commentaires / suggestions, ce sera toujours très apprécié :D

    pour m'envoyer un email :
    shadosan@users.sourceforge.net
    • Partager sur Facebook
    • Partager sur Twitter
    Altarapp.com - Applications, Code Snippets, API Wrappers et etc, le tout en C# le plus clair du temps!
      18 août 2007 à 19:15:24

      Ca a l'air pas mal, ton projet.
      Je vais essayer ta lib si j'ai le temps.

      Mais un question : est-elle compatible linux?
      • Partager sur Facebook
      • Partager sur Twitter
        18 août 2007 à 20:18:49

        les sources sont compatible linux/windows, mais pour ce qui est de savoir comment compiler/utiliser ma librairie pour qu'elle soit utilisable sous linux, je ne sais pas :( je vais faire des recherches là dessus :)
        • Partager sur Facebook
        • Partager sur Twitter
        Altarapp.com - Applications, Code Snippets, API Wrappers et etc, le tout en C# le plus clair du temps!
          25 août 2007 à 11:54:34

          Pour qu'une lib soit utilisable sous Linux, il faut, si je ne me trompe pas, la compiler sous Linux, comme tu le ferais sous Windows, par exemple avec Code::Blocks, la seule différence est que tu obtiendras un .so au lieu d'un .dll ;)
          • Partager sur Facebook
          • Partager sur Twitter
            26 août 2007 à 16:08:53

            @Petrus6 : merci ! ^^


            ... par contre, je rencontre quelques problèmes à compiler sous linux.. mais bon, je vais m'en sortir :p

            Présentement, j'ai ajouté une classe pour ma prochaine version (0.2.0) : CLickableText (texte clickable; un boutton quoi) ^^ et j'ai corrigé plusieurs bugs dans SurfMan.

            Aussi, je suis en train de faire un jeu-démonstration (Tétris), en utilisant massivement ma bibliothèque. :) j'ai commencé hier matin et j'en suis à environs 40% complété.

            Enfin, j'aimerais finir ma documentation (anglais/français) avant de poster la nouvelle version :)

            Bref, que de boulot ! :D
            • Partager sur Facebook
            • Partager sur Twitter
            Altarapp.com - Applications, Code Snippets, API Wrappers et etc, le tout en C# le plus clair du temps!

            [Bibliothèque c++] SGes

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown