IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SDL Discussion :

Votre avis sur cette demo (source et uml)


Sujet :

SDL

  1. #1
    Membre actif
    Avatar de TheDrev
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    310
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 310
    Points : 263
    Points
    263
    Par défaut Votre avis sur cette demo (source et uml)
    Bonjour,
    Après avoir écumé les tutos SDL sur ce site (notamment ceux de loka) et ailleurs, j'ai fait une petite demo.
    Chargement de cartes depuis un fichier txt, création de personnages, animations et collisions.

    J'aimerai votre avis, tant sur le code que sur la conception (le rar ci joint contient un png du diagramme uml avec les sources).

    Le jeu se sépare en 2 catégories : un "moteur" (simple agrégation de classes sound, graphics...) et le jeu en lui même.

    J'attends vos propositions !
    all your base are belong to us.

  2. #2
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Citation Envoyé par TheDrev Voir le message
    Bonjour,
    Après avoir écumé les tutos SDL sur ce site (notamment ceux de loka) et ailleurs, j'ai fait une petite demo.
    Chargement de cartes depuis un fichier txt, création de personnages, animations et collisions.

    J'aimerai votre avis, tant sur le code que sur la conception (le rar ci joint contient un png du diagramme uml avec les sources).

    Le jeu se sépare en 2 catégories : un "moteur" (simple agrégation de classes sound, graphics...) et le jeu en lui même.

    J'attends vos propositions !
    Bonjour,

    Je viens de regarder le code. Quelques remarques pour rendre le code compilable sous Linux :

    - c'est

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    #include <SDL/SDL.h>
    sous linux sinon cela ne fonctionne pas car linux/unix font attention à la casse.

    - dans timer.cpp tu as mis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    #include ".\timer.h"
    Cela fonctionne sous windows mais pas linux.

    Ceci marche pour les deux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    #include "./timer.h"
    bien que tu peux juste mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    #include "timer.h"
    Ensuite, voici les warning de mon compilateur :
    TBG/Idisplayable.h:13: warning: ‘class Idisplayable’ has virtual functions but non-virtual destructor
    class_ttf.cpp: In member function ‘void SDLFont::Text(int, int, int, int, int, SDL_Surface*, const char*, ...)’:
    class_ttf.cpp:36: warning: missing initializer for member ‘SDL_Rect::w’
    class_ttf.cpp:36: warning: missing initializer for member ‘SDL_Rect::h’
    class_ttf.cpp:43: warning: missing initializer for member ‘SDL_Color::unused’
    graphic.cpp:13: warning: unused parameter ‘windowFullScreen’
    TBG/Idisplayable.h:13: warning: ‘class Idisplayable’ has virtual functions but non-virtual destructor
    main.cpp:8: warning: unused parameter ‘argc’
    main.cpp:8: warning: unused parameter ‘argv’

    Idisplayable.h:13: warning: ‘class Idisplayable’ has virtual functions but non-virtual destructor
    Idisplayable.h:13: warning: ‘class Idisplayable’ has virtual functions but non-virtual destructor
    Idisplayable.h:13: warning: ‘class Idisplayable’ has virtual functions but non-virtual destructor
    Idisplayable.h:13: warning: ‘class Idisplayable’ has virtual functions but non-virtual destructor
    Idisplayable.h:13: warning: ‘class Idisplayable’ has virtual functions but non-virtual destructor
    map.cpp: In member function ‘void map::loadLevel(std::string)’:
    map.cpp:101: warning: statement has no effect
    Idisplayable.h:13: warning: ‘class Idisplayable’ has virtual functions but non-virtual destructor
    Et le programme se lance mais me donne un écran noir, je ne sais pas pourquoi.

    Voici ce qu'il affiche dans la console :

    Initializing SDL
    SDL initialized
    Loading chipset ressource : ressources/cat.bmp
    File loaded sucessfully.
    Init clips for chipset : width = 285 and height = 250
    3 * 2 = 6 tiles.
    tile N° 0 : x = 0, y : 0
    tile N° 1 : x = 95, y : 0
    tile N° 2 : x = 190, y : 0
    tile N° 3 : x = 0, y : 125
    tile N° 4 : x = 95, y : 125
    tile N° 5 : x = 190, y : 125
    Loading chipset ressource : ressources/cat.bmp
    File loaded sucessfully.
    Init clips for chipset : width = 285 and height = 250
    3 * 2 = 6 tiles.
    tile N° 0 : x = 0, y : 0
    tile N° 1 : x = 95, y : 0
    tile N° 2 : x = 190, y : 0
    tile N° 3 : x = 0, y : 125
    tile N° 4 : x = 95, y : 125
    tile N° 5 : x = 190, y : 125
    Loading chipset ressource : ressources/cat.bmp
    File loaded sucessfully.
    Init clips for chipset : width = 285 and height = 250
    3 * 2 = 6 tiles.
    tile N° 0 : x = 0, y : 0
    tile N° 1 : x = 95, y : 0
    tile N° 2 : x = 190, y : 0
    tile N° 3 : x = 0, y : 125
    tile N° 4 : x = 95, y : 125
    tile N° 5 : x = 190, y : 125
    h++
    h++
    h++
    h++
    0 is set as 0
    0 is set as 0
    3 is set as 1
    0 is set as 0
    2 is set as 1
    -35 is set as 0
    0 is set as 0
    0 is set as 0
    0 is set as 0
    0 is set as 0
    2 is set as 1
    -35 is set as 0
    3 is set as 1
    0 is set as 0
    0 is set as 0
    0 is set as 0
    2 is set as 1
    -35 is set as 0
    0 is set as 0
    0 is set as 0
    0 is set as 0
    0 is set as 0
    2 is set as 1
    map width = 5 height = 4
    Loading chipset ressource : ressources/overlandChipset.bmp
    File loaded sucessfully.
    Init clips for chipset : width = 256 and height = 256
    2 * 2 = 4 tiles.
    tile N° 0 : x = 0, y : 0
    tile N° 1 : x = 128, y : 0
    tile N° 2 : x = 0, y : 128
    tile N° 3 : x = 128, y : 128
    MAP DIM = 5 * 4
    Jc

  3. #3
    Membre actif
    Avatar de TheDrev
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    310
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 310
    Points : 263
    Points
    263
    Par défaut
    merci,
    que pense tu de la conception de cette app ?
    all your base are belong to us.

  4. #4
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 360
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 360
    Points : 20 378
    Points
    20 378
    Par défaut
    pas de fichier texte pour décrire les fichiers et comment les installer
    ce serait bien de séparer binaires et sources

    le problème avec SDL et autres c'est qu'il ya des tas de dll à redistribuer donc tu devrais faire un paquetage d'installation avec les bonnes dll c'est irritant d'avoir des messages d'erreur concernant une dll qui manque

    En l'occurence je n'ai pas pu tester il manque des fichiers WAV

    Pour les sources je regarderai cela plus tard mais moi je m'attache plus au final que le code source

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    void application::run() {
        SDL_Event event;
        bool quit = false;
     
        //characters
        theHero = new hero;
        theHero->set_x(0);
        theHero->set_y(0);
     
        theEnemies = new enemy;
        theEnemies->set_x(200);
        theNPCs = new npc;
     
        vecCharacters.push_back(theEnemies);
        vecCharacters.push_back(theNPCs);
     
     
        //map
        //simple
        theMap = new map;
        theMap->theChipset->tileHeight = 128;
    //....
    dans le corps d'un jeu on ne procéde pas comme cela en général et à l'avenir tu ne procéderas plus comme cela mais plutot en ajoutant de nouvelles méthodes qui initialisent des listes d'entités ( sprites,objets...)
    Quand on développe un jeu on est quasi obligé de développer un éditeur de niveau et d'entités en parallèle ce qui fait que ton éditeur écrira des fichiers binaires de données que le moteur de jeu rechargera.

    Il faut éviter de coder des données en dur comme cela.
    Sinon concevoir une classe de timer et de police de caractêres je ne trouve pas ça terriblement indispensable...

Discussions similaires

  1. Votre avis sur cette facon de leurrer un bot
    Par sly_prod dans le forum Sécurité
    Réponses: 1
    Dernier message: 26/02/2009, 02h19
  2. Réponses: 4
    Dernier message: 07/11/2008, 01h14
  3. votre avis sur cette offre C/C++ sous Linux
    Par nadjibo dans le forum SSII
    Réponses: 8
    Dernier message: 11/03/2008, 16h00
  4. Votre avis sur cette maquette : dzfoot.webdispo.com
    Par stanley dans le forum Mon site
    Réponses: 3
    Dernier message: 09/03/2008, 12h06
  5. Votre avis sur cette page.
    Par robotractor dans le forum Flash
    Réponses: 3
    Dernier message: 04/04/2007, 11h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo