Bienvenue, Invité. Merci de vous connecter ou de vous inscrire. Avez-vous oublié d'activer ?

Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.


Sujets - Xotraz

Pages: [1]
1
Général / [Résolu] Problème système d'animation
« le: Juillet 01, 2013, 07:35:06 pm »
Bonjour, je reviens ici car non sans peine j'ai fait un système d'animation.
Il n'est pas mauvais mais il ne fonctionne pas comme je le voudrais.

Le principe c'est que je dit Animation.Jouer(Bouger) et là il bouge, mais s'il ne bouge plus je dis Animation.Jouer(Rien) et là il ne fais plus rien.

Sauf que je crois qu'il ne bouge pas en continue et que donc il ne fais rien tout le temps.

Le code qui pose problème.
void Animation::Jouer(std::string Nom, int Vitesse)
{
if (_A_Lecture != _Ref_Animation->Numero_Anim(Nom))
{
_Etape_Lecture = 0;
_A_Lecture = _Ref_Animation->Numero_Anim(Nom);
}
}

void Animation::Changer_Frame(void)
{
if(_A_Lecture == -1)
{
_Etape_Lecture = 0;
_A_Lecture = 0;
}
_Frame = _Ref_Animation->Frame(_A_Lecture,_Etape_Lecture);

int x,y;
x = _Frame % _Ref_Animation->_Nombre_Frame_X * _Ref_Animation->_Taille_Frame.x;
y = _Frame / _Ref_Animation->_Nombre_Frame_X * _Ref_Animation->_Taille_Frame.y;

sf::IntRect Zone(x, y, _Ref_Animation->_Taille_Frame.x, _Ref_Animation->_Taille_Frame.y);
_Sprite->setTextureRect(Zone);


_Etape_Lecture += 1;
if (_Etape_Lecture >= _Ref_Animation->Nombre_Frame(_A_Lecture))
{
_Etape_Lecture = 0;
}
}
 
Et celui qui détermine les actions du personnage.
 if ((_d_x != 0) || (_d_y != 0))
 {
     _Anim.Jouer("Marcher",20);

     if (Touche_Gauche == false && Touche_Droite == false && Touche_Haut == false && Touche_Bas == false)
     {
         Bouger(_d_x,_d_y,elapsed);
     }

 }
 else _Anim.Jouer("Rien",20);

 Recharger();

 _Anim.Changer_Frame();

Donc pour résumé même s'il y a mouvement l'animation joué est Rien.
Et pourtant ce mouvement est continue :
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Left))  Element_G->Joueur(0)->Va_Gauche = true;

J'ai surement mal fais la chose.

2
Graphique / [SFML1.6]Utiliser un Rectangle
« le: Septembre 14, 2012, 07:59:12 pm »
Salut j'aurais une petite question d'après la doc pour créer un sf::Rect il faut quatre point :  T LeftCoord, T TopCoord, T RightCoord, T BottomCoord.
Le problème c'est que je n'ai pas trouvé de schéma qui explique quel point est à quel endroit. Sans doute pour beaucoup c'est une évidence mais je ne trouve pas l'ordre des points de plus le nom des points me parait étrange par rapport à un rectangle.
Merci d'avance pour votre aide sur ce petit problème  ;).

Pages: [1]
anything