je t'est déjà répondue pour un probleme similaire (même erreur de compilation) a tu inclue le header (.h) de AnimationManager dans ton header de la class player ? la définition de la class est obligatoire avans de pouvoire l'utilisé, et n'est jamais établie de manière globale il te faut résoudre les dépendences directement ou indirectement suivant le contexte
non pour l'utiliser tu passe par AnimationManager et il n'a pas besoin de (,int priority,int start, int end, bool loop = false) l'idéal serait que tu les initializes depuis l'animation elle même
que ne comprend tu pas ici ? tu fait des amalgames ? que je résolve ça !
bon comme tu as l'aire d'avoire du mal, j'espère que ça t'aideras perso j'organiserais comme ceci
#include "AnimationBinder.h"
class GenericState : public AnimationBinder
{
public:
GenericState(IAnimatedMeshSceneNode* NePlayer,int AnimPriority, int FrameStart, int FrameEnd, bool Frameloop = false);
virtual void bind();
virtual void unbind();
virtual int priority();
IAnimatedMeshSceneNode* NodePlayer;
int Apriority;
int start;
int end;
bool loop;
};
#include "AnimationBinder.h"
class JumpState : public AnimationBinder, public irr::scene::IAnimationEndCallBack
{
public:
JumpState(AnimationManager* a, IAnimatedMeshSceneNode* NePlayer);
virtual void bind();
virtual void unbind();
virtual int priority();
virtual void OnAnimationEnd(IAnimatedMeshSceneNode *node);
AnimationManager *amgr;
IAnimatedMeshSceneNode* NodePlayer;
int Apriority;
int start;
int end;
int state;
bool loop;
};
class Player : public irr::IEventReceiver
{
public:
Player()
{
loadMesh();
node = smgr->addAnimatedMeshSceneNode(... blabla)
anim = new AnimationManager(node);
}
... blabla bla
virtual bool OnEvent(const irr::SEvent &ev)
{
if(event.eventype == irr::quelquechose_JOYSTIC)
{
int keys = event.blabla.Sate;
anim.active(EAS_RUNNING, keys & 0b000001 && onGround);
anim.active(EAS_SWIMMING, keys & 0b000001 && onWater);
... etc
anim.active(EAS_ATTACKING, keys & 0b001000);
}
}
private:
AnimationManager *anim;
}
faut pas trop ce prendre la tête si tu peut faire un nouveaux fichier fait le (header/implementation) si tu peut gagner en clarté de code fait le aussi de sorte que la lecture soit "évidente" pour toi (c'est subjectif)