Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: Spritesheet animation & Fonctions  (Lu 6113 fois)

0 Membres et 1 Invité sur ce sujet

MyPix

  • Full Member
  • ***
  • Messages: 117
    • Voir le profil
    • E-mail
Spritesheet animation & Fonctions
« le: Février 05, 2014, 05:08:32 pm »
Bonjour,

je souhaiterais utiliser des fonctions et des objets afin de 'centraliser' les affichages graphiques de mon programme, imaginons :
Game game;
game.pause; -> Affiche le menu de pause avec une animation de chargement, etc...

Mais le problème, comment gérer cela dans la fenêtre actuelle.
Je dois mettre quoi ? L'entré de game.pause serait quoi un game.pause(sf::RenderWindow) ou un Window ?

Merci

Lo-X

  • Hero Member
  • *****
  • Messages: 618
    • Voir le profil
    • My personal website, with CV, portfolio and projects
Re : Spritesheet animation & Fonctions
« Réponse #1 le: Février 05, 2014, 05:19:22 pm »
Ce que tu veux s'appelle un Game State (ou State).
Je t'invite à chercher sur google, sur le wiki SFML et éventuellement dans le livre SFML Game Development. Tu y trouveras toutes les infos (ce serait trop long de tout expliquer ici)

Si néanmoins tu as des questions sur tout ça, n'hésites pas

MyPix

  • Full Member
  • ***
  • Messages: 117
    • Voir le profil
    • E-mail
Re : Spritesheet animation & Fonctions
« Réponse #2 le: Février 05, 2014, 05:27:42 pm »
Est-ce que tu aurais un bon tuto ?
http://fr.openclassrooms.com/forum/sujet/sfml-comment-gerer-un-gamestate Car d'après ceci je dois :
Créer une classe 'Mere'
Créer une autre classe abstraite
Faire dériver tout mes gamestate de cette classe

Lo-X

  • Hero Member
  • *****
  • Messages: 618
    • Voir le profil
    • My personal website, with CV, portfolio and projects
Re : Spritesheet animation & Fonctions
« Réponse #3 le: Février 05, 2014, 05:41:03 pm »
Wiki sfml : https://github.com/SFML/SFML/wiki/Tutorial%3A-Basic-Game-Engine#wiki-gamestate
Un article sur mon blog : http://blog.monstruosor.com/2012/04/12/les-gamestates-gerer-les-differents-ecrans-dun-jeu/ qui fait echo à http://gamedevgeek.com/tutorials/managing-game-states-in-c/


En gros il faut déporter la logique, les évènements et l'affichage dans des classes spécialisées : les States. Ta classe principale (Game ou main ou peu importe) se contente de retenir UN ou PLUSIEURS states actifs (selon la complexité du jeu) et appeler les méthodes de ces states pour la logique, les events et l'affichage.

Il faut donc passer la fenêtre à tes States, oui.

L'un de mes codes sources, inspiré du livre dont j'ai parlé avant et qui commence à être un State System complexe :  https://github.com/Lo-X/potato-framework/tree/master/potato/states
« Modifié: Février 05, 2014, 05:43:48 pm par Lo-X »

MyPix

  • Full Member
  • ***
  • Messages: 117
    • Voir le profil
    • E-mail
Re : Spritesheet animation & Fonctions
« Réponse #4 le: Février 05, 2014, 05:45:34 pm »
Tu pourrais expliquer clairement car j'y comprend rien..
Quel doit être le nom des fichiers et leur structure exacte, car j'ai essayé de faire ça et dans m_window dans ma classe hérité j'ai essayé de faire un .draw et j'ai eu des messages d'erreur :(

Lo-X

  • Hero Member
  • *****
  • Messages: 618
    • Voir le profil
    • My personal website, with CV, portfolio and projects
Re : Re : Spritesheet animation & Fonctions
« Réponse #5 le: Février 05, 2014, 05:49:15 pm »
Tu pourrais expliquer clairement car j'y comprend rien..
Quel doit être le nom des fichiers et leur structure exacte, car j'ai essayé de faire ça et dans m_window dans ma classe hérité j'ai essayé de faire un .draw et j'ai eu des messages d'erreur :(

J'ai édité mon message précédent avec plus d'infos.

Et non je ne vais pas écrire le code pour toi. Tu peux appeler tes fichiers, classes et tes attributs comme tu veux.

MyPix

  • Full Member
  • ***
  • Messages: 117
    • Voir le profil
    • E-mail
Re : Spritesheet animation & Fonctions
« Réponse #6 le: Février 05, 2014, 05:50:12 pm »
Je veux dire, la structure générale, genre les classes, si elles contiennent un .cpp
C'est juste que j'ai du mal à comprendre :(

Lo-X

  • Hero Member
  • *****
  • Messages: 618
    • Voir le profil
    • My personal website, with CV, portfolio and projects
Re : Spritesheet animation & Fonctions
« Réponse #7 le: Février 05, 2014, 05:54:39 pm »
Oula, je crois que tu devrais aller apprendre le c++ avec un bon prof, livre ou tutoriel. J'ai l'impression que tu mélanges tout là. (une classe qui contient un .cpp, késako ?)

MyPix

  • Full Member
  • ***
  • Messages: 117
    • Voir le profil
    • E-mail
Re : Spritesheet animation & Fonctions
« Réponse #8 le: Février 05, 2014, 06:00:35 pm »
Je me suis mal exprimé ^^
Je connais le C++, mais je vais relire les chapitres sur le Polymorphisme et sur les classes Abstraites sur OpenClassrooms.fr

Lo-X

  • Hero Member
  • *****
  • Messages: 618
    • Voir le profil
    • My personal website, with CV, portfolio and projects
Re : Spritesheet animation & Fonctions
« Réponse #9 le: Février 05, 2014, 06:18:25 pm »
Oui ces deux concepts sont indispensables pour ce dont je te parle. Une fois que tu les auras mieux compris, reviens sur les liens que je t'ai donné et que tu as trouvé à tête reposée, ça devrait mieux passer =)

MyPix

  • Full Member
  • ***
  • Messages: 117
    • Voir le profil
    • E-mail
Re : Spritesheet animation & Fonctions
« Réponse #10 le: Février 05, 2014, 08:51:29 pm »
J'ai suivi le tuto :

CGameState.h
#ifndef __SFML_Gamestates__CGameState__
#define __SFML_Gamestates__CGameState__

#include <iostream>
class CGameEngine;
class CGameState
{
public:
    virtual void Init() = 0;
    virtual void Cleanup() = 0;
   
    virtual void Pause() = 0;
    virtual void Resume() = 0;
   
    virtual void HandleEvents(CGameEngine* game) = 0;
    virtual void Update(CGameEngine* game) = 0;
    virtual void Draw(CGameEngine* game) = 0;
   
    void ChangeState(CGameEngine* game,
                     CGameState* state) {
        game->ChangeState(state);
    }
   
protected: CGameState() { }
};
#endif /* defined(__SFML_Gamestates__CGameState__) */

CGameEngine.h
#ifndef SFML_Gamestates_CGameEngine_h
#define SFML_Gamestates_CGameEngine_h
#include <iosstream>
#include "CGameState.h"

class CGameEngine
{
public:
    void Init();
    void Cleanup();
   
    void ChangeState(CGameState* state);
    void PushState(CGameState* state);
    void PopState();
   
    void HandleEvents();
    void Update();
    void Draw();
   
    bool Running() { return m_running; }
    void Quit() { m_running = false; }
   
private:
    // the stack of states
    vector<CGameState*> states;
   
    bool m_running;
};


#endif
 
CGameIntro.h
#ifndef __SFML_Gamestates__CGameIntro__
#define __SFML_Gamestates__CGameIntro__

#include <iostream>
#include "CGameState.h"

class CGameEngine;

class CGameIntro : public CGameState
{
public:
    virtual void Init() ;
    virtual void Cleanup() ;
   
    virtual void Pause() ;
    virtual void Resume() ;
   
    virtual void HandleEvents(CGameEngine* game) ;
    virtual void Update(CGameEngine* game) ;
    virtual void Draw(CGameEngine* game) ;
};
#endif /* defined(__SFML_Gamestates__CGameIntro__) */

CGameIntro.cpp
#include "CGameIntro.h"

 void Init()
{
   
}
void Cleanup()
{
   
}
void Pause()
{
   
}
void Resume()
{
   
}

void HandleEvents(CGameEngine* game)
{
   
}
void Update(CGameEngine* game)
{
   
}
void Draw(CGameEngine* game)
{
   
}

Dans le CGameState.h j'ai une erreur ici
        game->ChangeState(state);
http://prntscr.com/2ptanq

Lo-X

  • Hero Member
  • *****
  • Messages: 618
    • Voir le profil
    • My personal website, with CV, portfolio and projects
Re : Spritesheet animation & Fonctions
« Réponse #11 le: Février 05, 2014, 09:02:19 pm »
Tu es sur de savoir comment fonctionne le C/C++ ?

Tu n'as pas inclus le fichier qui contient la classe CGameEngine, sépare la méthode dans un fichier cpp

MyPix

  • Full Member
  • ***
  • Messages: 117
    • Voir le profil
    • E-mail
Re : Spritesheet animation & Fonctions
« Réponse #12 le: Février 05, 2014, 09:04:24 pm »
Faute d'inattention, je suis crevé x)

MyPix

  • Full Member
  • ***
  • Messages: 117
    • Voir le profil
    • E-mail
Re : Spritesheet animation & Fonctions
« Réponse #13 le: Février 05, 2014, 09:05:46 pm »
J'ai mis la méthode dans le .cpp, et toujours cette erreur... j'ai implémenté les autres mais rien n'y fait

MyPix

  • Full Member
  • ***
  • Messages: 117
    • Voir le profil
    • E-mail
Re : Spritesheet animation & Fonctions
« Réponse #14 le: Février 05, 2014, 09:07:15 pm »
Je l'ai fait mais toujours le même soucis...
Que faire ?

EDIT:

Bon, j'y comprend rien au Tuto, je fais les classes qu'il me dit de faire et j'ai des erreurs...
Y'a pas un tuto FR dessus bien expliqué ? Car la j'ai les boules...
« Modifié: Février 05, 2014, 09:11:58 pm par MyPix »