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

Projets Discussion :

Back to roots


Sujet :

Projets

  1. #81
    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 Syl_20 Voir le message
    Je viens de voir la vidéo (j'ai lutté pour trouver le bouton de téléchargement)
    C'est super sympa mais c'est en vitesse accéléré? Le perso va super vite, la ville est traversé en seconde

    En tout cas gros potentiel j'ai hâte d'en voir plus
    - La video est en accéléré, je ne sais pas trop pourquoi. Le jeu sous capture est passé à moins de 26 images par secondes et je pense que c'est pour cela que c'est accéléré.

    - Je vais tenter sur mon ordi de bureau, cela donnera peut-être quelque chose de moins rapide :-)

    Jc

  2. #82
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 860
    Points : 218 582
    Points
    218 582
    Billets dans le blog
    120
    Par défaut
    Bien joué ...
    Finalement y a plein de jeu qui se rapproche de ce principe, tel que FF ( les premiers ) et Breath of Fire. Lorsque je dis "se rapproche" je parle de la gestion des cartes.

    Les combats !
    Les combats !
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #83
    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 LittleWhite Voir le message
    Les combats !
    Les combats !
    Pas encore, je t'ai dit que j'avais d'autres choses à régler d'abord : la magie avec la gestion des potions magiques et des sorts ;-)

    Jc

  4. #84
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 860
    Points : 218 582
    Points
    218 582
    Billets dans le blog
    120
    Par défaut
    Citation Envoyé par fearyourself Voir le message
    Pas encore, je t'ai dit que j'avais d'autres choses à régler d'abord : la magie avec la gestion des potions magiques et des sorts ;-)

    Jc
    Baston ! ( Pour ce qui connaisse Nahelbeuk )

    Juste pour dire que ne connaissant pas le jeu de base ... je vais toujours croire qu'il n'y a rien à faire de plus et que l'on peut donc attaquer ( c'est le cas de le dire ) les combats.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  5. #85
    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
    Nous avons à présent les potions :-)

    Dans le jeu original il y en avait 8 :

    Jaune : guérison
    Rouge : Guérison des maladies (toutes)
    Verte : Poison
    Blue : Endormir
    Orange : Réveiller
    Noir : invisibilité
    Blanche : vison
    Mauve: protection

    Du coup, on les a ajouté comme on le voit ici :
    Nom : Screenshot-Back to roots --- Version: 1.18.jpg
Affichages : 146
Taille : 97,8 Ko

    On peut bien sûr en acheter/vendre et les utiliser. Je n'ai pas encore fait de magasin par contre :-)

    Jc

    PS: On a dépassé les 10k lignes :-) :yeah:

  6. #86
    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
    Et voilà, chose promise, chose dûe : un magasin de potions :-)

    La ville de Novea commence à se remplir avec les magasins qui se multiplient !

    Nom : Screenshot-Back to roots --- Version: 1.19.jpg
Affichages : 138
Taille : 69,8 Ko

    Nom : Screenshot-Back to roots --- Version: 1.19-1.png
Affichages : 126
Taille : 253,2 Ko

    Prochaine étape : les sorts !
    Jc

  7. #87
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 619
    Points : 188 594
    Points
    188 594
    Par défaut
    On dirait que ça avance bien ! JHuste une remarque : ta feuille de sprite n'a pas l'air de bonne qualité...
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  8. #88
    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 dourouc05 Voir le message
    On dirait que ça avance bien ! JHuste une remarque : ta feuille de sprite n'a pas l'air de bonne qualité...
    Non pas vraiment. Gardez en tête que les sprites était en 16*16 pixels ! Donc forcément, moi je l'agrandi un peu ben ca donne ca... Je peux la changer pour une autre feuille qui n'a pas été au préalable agrandie.

    Je ferai ce genre de choix/changement une fois que la première version du moteur est fini. Il me reste les sorts à gérer et les combats et on aura déjà pas mal de choses.

    LittleWhite -> pour les sorts, je vais avoir besoin de combats vu que certains sont pour les combats donc bientôt ;-)

    Jc

  9. #89
    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
    Pour LittleWhite:

    Histoire de vous faire rire un vendredi soir, la première image du premier combat :

    Nom : Screenshot-Back to roots --- Version: 1.20.jpg
Affichages : 150
Taille : 83,7 Ko

    C'est vide, ce n'est pas encore prêt mais c'est un début :-)

    Bonne soirée à tous !
    Jc

  10. #90
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 860
    Points : 218 582
    Points
    218 582
    Billets dans le blog
    120
    Par défaut


    Comme on dit, la première chose qu'il faut pour commencer, c'est avoir une page blanche ( ou ouvrir l'editeur de code ) ( bon d'accord, y a peut être moi qui dit ça )

    Bonne continuation
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  11. #91
    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
    Comme quoi un peu d'UML ou de réflexion serait pas mal :

    Petit rappel:
    - Nous avions:
    1) Character qui hérite de Class
    2) Npc qui contient une instance de Character et qui hérite de AnimatedObject

    La map gére des AnimatedObject.

    - A la place d'avoir un Character dans un Npc et perdre cette information lors de l'ajout du groupe, il s'est avéré qu'on avait besoin de l'AnimatedObject pour les combats.

    Du coup, j'ai dû mettre à jour mon code et c'est vraiment plus propre à présent :

    Class < Character < AnimatedObject < Npc.

    Du coup, on a toute les informations nécessaire et quasiment gratuitement nous avons ce screen shot :
    Nom : Screenshot-Back to roots --- Version: 1.20-1.jpg
Affichages : 107
Taille : 89,7 Ko

    On a les persos en place, on peut les bouger chacun leur tour, la gestion de collision est directement intégrée vu que c'était déjà dans Map. J'ai éteint les questions de visibilité pour les combats (on verra).

    A présent, je dois ajouter des ennemis et ce sera un bon début ;-)
    Jc

  12. #92
    Membre éclairé
    Avatar de Gregouar
    Profil pro
    Chercheur en mathématiques
    Inscrit en
    Décembre 2007
    Messages
    246
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur en mathématiques

    Informations forums :
    Inscription : Décembre 2007
    Messages : 246
    Points : 899
    Points
    899
    Par défaut
    C'est dingue comme tu travailles vite et bien.

    Impressionnant.
    Holyspirit : Hack'n'Slash amateur gratuit !

    www.holyspirit.fr

  13. #93
    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 Gregouar Voir le message
    C'est dingue comme tu travailles vite et bien.

    Impressionnant.
    Disons que beaucoup de choses sont déjà mis en place donc c'est assez rapide d'ajouter au modéle existant. J'ai eu pas mal de chance car je n'ai pas encore fait de grosse gaffe (je ne pense pas du moins).

    Sans UML et en improvisant au fur et à mesure, j'ai de la chance ;-).

    Pour revenir sur comment les combats sont gérés et comment on fait pour passer d'une vue à une autre, c'est assez facile et assez pratique (moins de 350 lignes de code pour ca !).

    Du code GeneralViewState qui vous a donné quasiment tous les screenshots jusqu'à présent, nous avons un code qui permet de faire une attaque :

    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
     //Handle talking state event
    bool GeneralViewState::handleAttackingState (SDL_Event &ev)
    {
        Cell *cell;
     
        bool res = handleSpecialState (ev, &cell);
     
        if (cell != NULL && cell->isOccupied ())
        {
            AnimatedObject *obj = cell->getAnimatedObject ();
     
            appendText (obj->getName ());
     
            SCombatViewInfo *scvi = new SCombatViewInfo ();
            scvi->group = group;
            scvi->textArea = textarea;
            scvi->groupView = groupView;
            scvi->combatName = "data/combat.txt";
            Engine::getInst ()->setNewGameState ("combatViewHandler", scvi);
        }
     
        return res;
    }
    On commence donc par regarder si la case est occupée. Si oui, on ajoute le nom de la personne qu'on attaque au text et ensuite on remplit une structure de transfert d'information.

    En effet, GeneralViewState est le possesseur du groupe, de la zone texte, de la vue du groupe. Il sait aussi quel combat faire (pour le moment codé en dur, mais ensuite on fera un truc nettement plus sympa :-)).

    Enfin, on dit au moteur qu'on veut changer d'état et on passe le pointeur de la structure. On utilise simplement un string pour faire référence au combat, le moteur trouvera l'état dans sa map interne.

    La fonction du moteur est assez simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    //Set new game state
    void Engine::setNewGameState (std::string s, void *info)
    {
        newState = states[s];
        newStateName = s;
     
        if (newState == NULL)
          Logging::log(0, "Warning new state is NULL" ,NULL);
     
        newState->handleInfo (info);
    }
    On a une mise en place du nouvel état et un appel à la fonction handleInfo.

    D'un point de vue gestion de l'information pour le combat, on a la récupération des pointeurs nécessaire, on vide la zone texte (plus tard je vais ajouter un système de pile de texte, ce sera mieux).

    Et on charge le combat.

    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
     
    void CombatViewState::handleInfo (void *info)
    {
        SCombatViewInfo *scvi = static_cast <SCombatViewInfo *> (info);
     
        group = scvi->group;
        groupView = scvi->groupView;
        textArea = scvi->textArea;
     
        //Free textArea
        textArea->clear ();
        sendText ("Combat - Started!");
     
        loadCombatView (scvi->combatName);
        delete scvi, scvi = NULL;
    }
    Le moteur, lors d'une mise à jour, va vérifier si newState est non null et si c'est le cas, fera le nécessaire pour passer d'un état à un autre de facon transparente.

    Un fichier de combat est défini par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    data/combat_map_grass.txt
    #Maximum players
    8
    #Now have the start positions of the players
    7 6
    6 7
    8 7
    5 8
    7 8
    9 8
    6 9
    8 9
    La première ligne est l'information de la map (donc conventions et fichier .bmp).

    Ensuite nous avons les positions de départ des joueurs. On a dans ce jeu un maximum de 8 joueurs dans le groupe (c'était le maximum dans le jeu de base).

    Le chargement se fait donc très facilement, chargement de la map par la classe Map :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    bool CombatViewState::loadCombatView (std::string fileName)
    {
        Logging::log(0, "Loading a combat view", NULL);
        LineParser lp (fileName, true);
     
        //Get Map line
        std::string map_name = lp.getNextLine ();
        loadMap (map_name);
    Récupération des positions des joueurs et, si on a assez de joueurs dans le groupe, on met à jour sa position et on l'insére dans la map.

    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
     
        unsigned int maxPlayers = lp.getNumber ();
     
        //Get positions of players
        for (unsigned int i = 0; i < maxPlayers; i++)
        {
            int x, y;
            lp.getCouple (&x, &y);
     
            if (i < group->getNumCharacters ())
            {
                AnimatedObject *character = group->getCharacterAnimated (i);
     
                character->setPos (x, y);
                Cell *cell = map->getCell (y, x);
     
                assert (cell);
     
                cell->occupy (character);
            }
        }
    Ensuite, le premier joueur aura le focus.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
        //Set first player as focus
        map->setFocus (group->getCharacterAnimated (0));
    Le focus permet de gérer qui on est en train de jouer. Comment est-ce qu'on gére cela ? C'est très facile !

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
    bool CombatViewState::handleDefaultState (SDL_Event &ev)
    {
        std::string text = "";
        bool res = true;
     
        switch (ev.key.keysym.sym)
        {
            case SDLK_UP:
                map->goUp ();
                break;
            case SDLK_DOWN:
                map->goDown ();
                break;
            case SDLK_RIGHT:
                map->goRight ();
                break;
            case SDLK_LEFT:
                map->goLeft ();
                break;
            case SDLK_SPACE:
                text = "Pass";
                break;
            case SDLK_z:
                inState = INVENTORY_COMBAT_STATE;
                text = "Checking inventory";
                groupView->showInventory ();
                break;
            default:
                //Did not handle this key
                res = false;
                break;
        }
     
        if (text != "")
            sendText (text);
     
         //Now pass the focus to the next character
         currentFocus++;
         currentFocus %= group->getNumCharacters ();
     
         map->setFocus (group->getCharacterAnimated (currentFocus));
     
        return res;
    }
    Si on appuie sur une direction, on appelle la fonction correspondante pour la map et la map gére les collisions comme avant. Par contre, à la place d'utiliser le groupe comme auparavant, la map utilise l'objet ayant le focus.

    Une fois un événement géré, on passe le focus au prochain caractère et le passage de l'un à l'autre se fait de facon transparente pour tout le monde.

    Espérant cela a été clair,
    Jc

  14. #94
    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
    Petite mise à jour hier soir et nous avons la première image d'un combat avec des ennemis.

    Ici, nous attaquons les gardes :-)

    Ils ne font encore rien, nous ne pouvons pas encore attaquer mais cela arrivera rapidement ;-)

    Nom : Screenshot-Back to roots --- Version: 1.20.jpg
Affichages : 108
Taille : 95,6 Ko

    Jc

  15. #95
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 619
    Points : 188 594
    Points
    188 594
    Par défaut
    Citation Envoyé par fearyourself Voir le message
    Ils ne font encore rien, nous ne pouvons pas encore attaquer mais cela arrivera rapidement ;-)
    C'est pour ça qu'on appelle ça un combat, non ?*

    Tu n'as pas un peu forcé la dose en gardes ?*
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  16. #96
    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 dourouc05 Voir le message
    C'est pour ça qu'on appelle ça un combat, non ?*

    Tu n'as pas un peu forcé la dose en gardes ?*
    En fait, j'ai mis la dose pour vérifier que le code arrivait à les générer et surtout arrivé à gérer la récupération de la mémoire facilement :-)

    Jc

  17. #97
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 860
    Points : 218 582
    Points
    218 582
    Billets dans le blog
    120
    Par défaut
    C'est pas mal le système de combat

    Après, je trouve que le jeux va être difficile ( 200 gardes contre 3 gus ( dans leur garage ) )
    Sinon, en lisant le code, on remarque ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if (newState == NULL)
          Logging::log(0, "Warning new state is NULL" ,NULL);
     
    newState->handleInfo (info);
    Et ce que le logger quitte le programme ?
    Car s'il ne le fait pas ... nous avons un plantage ... ( et en plus, sans flush sur l'entrée du log ... et bah le message risque de ne pas s'afficher ( même avec un flush, je crois )).
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  18. #98
    Membre actif Avatar de ironzorg
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 288
    Points : 245
    Points
    245
    Par défaut
    Citation Envoyé par LittleWhite Voir le message
    C'est pas mal le système de combat

    Après, je trouve que le jeux va être difficile ( 200 gardes contre 3 gus ( dans leur garage ) )
    Sinon, en lisant le code, on remarque ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if (newState == NULL)
          Logging::log(0, "Warning new state is NULL" ,NULL);
     
    newState->handleInfo (info);
    Et ce que le logger quitte le programme ?
    Car s'il ne le fait pas ... nous avons un plantage ... ( et en plus, sans flush sur l'entrée du log ... et bah le message risque de ne pas s'afficher ( même avec un flush, je crois )).
    Logiquement la fonction log du module Logging ne fait que logger, ca serait illogique qu'elle exit (j'en sait rien hein, ca serait logique).

    NULL deferencement.

  19. #99
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 860
    Points : 218 582
    Points
    218 582
    Billets dans le blog
    120
    Par défaut
    Citation Envoyé par ironzorg Voir le message
    Logiquement la fonction log du module Logging ne fait que logger, ca serait illogique qu'elle exit (j'en sait rien hein, ca serait logique).

    NULL deferencement.
    Je suis entièrement d'accord ... c'est pour cela que j'en parle. Mais on pouvait avoir un doute à cause du dernier paramètre ... ( on ne sait jamais :p bien que je ne vois pas trop à quoi il sert ).

    Citation Envoyé par fearyourself
    PS: On a dépassé les 10k lignes :-) :yeah:
    Citation Envoyé par Bill Gates
    Measuring programming progress by lines of code is like measuring aircraft building progress by weight.
    ( source )
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  20. #100
    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 LittleWhite Voir le message
    C'est pas mal le système de combat

    Après, je trouve que le jeux va être difficile ( 200 gardes contre 3 gus ( dans leur garage ) )
    Oui mais tu n'es pas supposé attaqué un garde ;-)

    Sinon, en lisant le code, on remarque ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if (newState == NULL)
          Logging::log(0, "Warning new state is NULL" ,NULL);
     
    newState->handleInfo (info);
    Et ce que le logger quitte le programme ?
    Car s'il ne le fait pas ... nous avons un plantage ... ( et en plus, sans flush sur l'entrée du log ... et bah le message risque de ne pas s'afficher ( même avec un flush, je crois )).
    Non le logger ne fait que logger, par contre, j'ai corrigé ca samedi en fait ;-). Un joli petit if est mis pour protéger l'appel ;-)

Discussions similaires

  1. [phpMyAdmin] [phpMyAdmin] Problème mot de passe Root !
    Par StouffR dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 7
    Dernier message: 26/09/2014, 11h59
  2. IDE vs programmation "roots" ?
    Par yoloosis dans le forum Débats sur le développement - Le Best Of
    Réponses: 44
    Dernier message: 27/01/2005, 00h37
  3. Comment change l'utilisateur root de mysql?
    Par silvermoon dans le forum Installation
    Réponses: 3
    Dernier message: 29/10/2003, 11h25
  4. probleme identification et mot de passe root
    Par freums dans le forum Débuter
    Réponses: 5
    Dernier message: 19/09/2003, 17h09
  5. Password root perdu !!
    Par Va(l)ve dans le forum Administration système
    Réponses: 8
    Dernier message: 18/08/2003, 22h24

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