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

Auteur Sujet: tableau pour deplacement de personnage  (Lu 2611 fois)

0 Membres et 1 Invité sur ce sujet

Ghost_anon

  • Newbie
  • *
  • Messages: 4
    • Voir le profil
tableau pour deplacement de personnage
« le: Mars 15, 2013, 01:47:30 pm »
Bonjour à tous.
tout d'abord , un grand merci à Laurent pour cette bibliothèque que je trouve fort sympathique  ;)
je l'ai découverte y a une bonne semaine , donc, c'est tout récent pour moi.

voilà, alors mon soucis, qui doit pas en être un pour vous je penses  ;D, c'est que je souhaite créer une illusion de  déplacement de mon personnage (le personnage ne bouge pas de position , c'est seulement un blit d'images) avec un mouvement découpé en 11 subrect.

code des subects:
// Deplacement droite
static const IntRect CourseDroite1 (258,35,314,107);
static const IntRect CourseDroite2 (30,194,86,260);
static const IntRect CourseDroite3 (87,194,159,260);
static const IntRect CourseDroite4 (160,194,237,260);
static const IntRect CourseDroite5 (238,194,315,260);
static const IntRect CourseDroite6 (316,194,373,260);
static const IntRect CourseDroite7 (374,194,438,260);
static const IntRect CourseDroite8 (439,194,506,260);
static const IntRect CourseDroite9 (507,194,577,260);
static const IntRect CourseDroite10 (578,194,636,260);
static const IntRect CourseDroite11 (637,194,697,260);

j'aimerai créer un tableau de ces 11 subrects pour le récupérer dans ma fonction que voici :
// Droite
void graphique::Deplacement2()
 {
    int i = 1;
    spritePerso.SetImage(imagePerso1);
    spritePerso.SetSubRect(CourseDroite1);
    i ++;
    if (i == 11)
       i = 1;
 }

Comme vous pouvez l'avoir remarqué , c'est pour le mouvement droite, donc, j'ai également la même chose pour le mouvement gauche. (avec d'autres positions sur la feuille de sprites bien entendu)
Pour le moment, seul le 1 er subrect s'affiche (pareil pour l'autre sens).
j'aimerai utiliser ce tableau dans une boucle for pour afficher les 10 autres subrects pour finir le mouvement.
hors c'est là que je pêches, comment puis-je créer un tableau dans lequel se trouverai mes 11 mouvements
que j'enverrai à ma méthode et que j'incrémenterai avec i pour les afficher à chaque tour de boucles?

Merci d'avance pour vos suggestions :)

PS: je demande pas forcément du code tout fait,mais juste vers quelle classe de la SFML ,je pourrai aller voir.

Bien à vous
« Modifié: Mars 18, 2013, 02:14:06 pm par Ghost_anon »

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : tableau pour deplacement de personnage
« Réponse #1 le: Mars 15, 2013, 01:52:25 pm »
Tu n'auras besoin de rien de plus que ce que tu utilises là côté SFML. A mon avis ce qu'il te manque c'est surtout un peu plus d'expérience avec le C++ et sa bibliothèque standard. SFML n'est pas une bibliothèque que l'on peut aborder sans avoir de bonnes bases du langage ;)

Sinon, le plus simple pour répondre à ta question, c'est de te diriger vers le wiki : tu y trouveras plusieurs codes sources de gestion d'animation, desquels tu pourras t'inspirer et trouver des réponses.
Laurent Gomila - SFML developer

Ghost_anon

  • Newbie
  • *
  • Messages: 4
    • Voir le profil
Re : tableau pour deplacement de personnage
« Réponse #2 le: Mars 15, 2013, 02:00:15 pm »
merci Laurent pour la rapidité.

en fait , je vais fouiner un peu partout, bien que je fasses que ça depuis 2 ans :D
je sais que la boucle n'est pas faites et que les constantes, bah, j' avais l'intention de les éliminer du code en créant mon tableau .

mais bon, je vais trouver, je vais trouver :P

à plus tard

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : tableau pour deplacement de personnage
« Réponse #3 le: Mars 15, 2013, 02:16:18 pm »
Mais tu coinces sur quoi là exactement ? Essaye déjà d'écrire ce qu'il manque, puis si tu tombes sur un problème précis (ça ne marche pas, erreur de compilation, je trouve pas l'algorithme qui va bien, ...) nous serons ravis de t'aider à le résoudre ;)
Laurent Gomila - SFML developer

Ghost_anon

  • Newbie
  • *
  • Messages: 4
    • Voir le profil
Re : tableau pour deplacement de personnage
« Réponse #4 le: Mars 15, 2013, 02:52:22 pm »
re, alors pour faire simple, là, j'ai réussi à obtenir l'effet désiré : à savoir l'impression que mon perso court.

donc, j'ai gardé mes constantes et dans ma méthode, je suis passé par un switch comme ceci :

/ Gauche
void graphique::Deplacement1()
 {

    spritePerso.SetImage(imagePerso1);

    switch (i)
     {
        case 1:
          spritePerso.SetSubRect(CourseGauche1);
          i++;
        break;

        case 2:
          spritePerso.SetSubRect(CourseGauche2);
          i++;
        break;

        case 3:
          spritePerso.SetSubRect(CourseGauche3);
          i++;
        break;

        case 4:
          spritePerso.SetSubRect(CourseGauche4);
          i++;
        break;

        case 5:
          spritePerso.SetSubRect(CourseGauche5);
          i++;
        break;

        case 6:
          spritePerso.SetSubRect(CourseGauche6);
          i++;
        break;

        case 7:
          spritePerso.SetSubRect(CourseGauche7);
          i++;
        break;

        case 8:
          spritePerso.SetSubRect(CourseGauche8);
          i++;
        break;

        case 9:
          spritePerso.SetSubRect(CourseGauche9);
          i++;
        break;

        case 10:
          spritePerso.SetSubRect(CourseGauche10);
          i++;
        break;

        case 11:
          spritePerso.SetSubRect(CourseGauche11);
          i = 2;
        break;

        default:
           break;
     }
 }


J'avoue que comme code, y a franchement mieux . le soucis, c'est que je ne sais pas créer un tableaux avec 4 coordonnées ( un tableau de IntRect ).
faire un tableau à 2 D, ça, j'ai déjà vu mais pour un rectangle, jamais fait.
je sais que j'ai deux points sur mon Rect (x1 , y1, x2, y2)

une fois que mon tableau a reçu mes 11 subrects, je pourrai l'utiliser dans une boucle et cela rendra ma méthode bien plus propre.

en bref, c'est le tableau que je sais pas faire.

pour le moment, ça fonctionne bien et dans les deux sens, mais point de vue ,optimisation, c'est pas top :S

voilà :)
« Modifié: Mars 15, 2013, 03:00:51 pm par Ghost_anon »

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : tableau pour deplacement de personnage
« Réponse #5 le: Mars 15, 2013, 03:15:47 pm »
Un tableau est un tableau, qu'il contienne des int, des IntRect ou même des Pouet ;)

IntRect rects[11];

// ou, si tu fais du C++11

std::array<IntRect, 11> rects;

// ou, si la taille n'est pas connue à la compilation

std::vector<IntRect> rects;
Laurent Gomila - SFML developer

Ghost_anon

  • Newbie
  • *
  • Messages: 4
    • Voir le profil
Re : tableau pour deplacement de personnage
« Réponse #6 le: Mars 15, 2013, 03:26:36 pm »
punaise, pourquoi je vais toujours chercher compliqué mdr.

merci lol.

je crois aussi qu'il va falloir que je travailles cette façon de penser ^^

merci encore