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.


Messages - Toko

Pages: [1]
1
Ha mais oui ! Merci beaucoup :D J'avais pensé à quelque chose dans le genre, mais sans trouver comment l'exécuter :) J'essaierai ceci demain matin

2
Avec la version 1.6 de SFML, j'effectuais un SetSubRect sur un Sprite qui contenait ma "carte" (il s'agissait en fait seulement d'un png sur lequel j'avais dessiné des pixels). Puis en passant ce Sprite dans une méthode, il m'en ressortait un tableau de string (avec l'aide de getPixel évidemment). Avec ce tableau de string il m'était ensuite possible d'effectuer mon Tile Mapping.


Or, maintenant je dois utiliser une Image au lieu d'un Sprite, puisque c'est de cette classe-ci que "getPixel" est membre. Il m'est donc impossible d'utiliser un setTextureRect sur l'Image, et donc impossible d'effectuer un changement de map une fois dans le jeu.

Je me rends compte que mes explications ne sont pas très claires ! Je vais donc donner un bout de mon code actuel

Fonction permettant de créer le tableau de string
void TileMap::DefinirMapAvecCarte()
{
    m_tableau[0] = "";
    m_tableau[1] = "";m_tableau[2] = "";m_tableau[3] = "";m_tableau[4] = "";m_tableau[5] = "";m_tableau[6] = "";m_tableau[7] = "";m_tableau[8] = "";m_tableau[9] = "";m_tableau[10] = "";m_tableau[11] = "";m_tableau[12] = "";m_tableau[13] = "";m_tableau[14] = "";m_tableau[15] = "";m_tableau[16] = "";m_tableau[17] = "";m_tableau[18] = "";m_tableau[19] = "";m_tableau[20] = "";m_tableau[21] = "";m_tableau[22] = "";m_tableau[23] = "";m_tableau[24] = "";m_tableau[25] = "";m_tableau[26] = "";m_tableau[27] = "";m_tableau[28] = "";m_tableau[29] = "";m_tableau[30] = "";m_tableau[31] = "";

    Color Couleur;
    string LigneCompleteString;

    m_LigneEnCours = 0;

for ( m_LigneEnCours;m_LigneEnCours<m_nbreTileHauteur;m_LigneEnCours++)
{
    LigneCompleteString = "";
    int i=0;
    for(i;i<=m_nbreTileLargeur;i++)
    {
    Couleur = m_carteImage.getPixel(i, m_LigneEnCours);

        if(Couleur == Couleur.White)
        {
                 m_tableau[m_LigneEnCours].append("0");

        }

        else if(Couleur == Couleur.Black)
        {
              m_tableau[m_LigneEnCours].append("1");
        }


Fonction qui me permettait de changer de carte, quand je pouvais encore utiliser getPixel sur un Sprite :
void TileMap::ReDefinirCarte(int PosX, int PosY)
 {
    m_carte.setTextureRect(IntRect(PosX,PosY,m_nbreTileLargeur,m_nbreTileHauteur));
 }
 

Dans tous les cas, merci beaucoup pour votre aide !

3
Merci beaucoup pour votre réponse !

Malgré tout, cette solution ne me parait pas adapté à mon cas, car la carte est bien trop grosse.
Cependant, n'y-a-t-il donc aucun moyen pour "convertir" mon Sprite en Image ?

4
Bonjour,

Je suis récemment passé de la version 1.6 de SFML à la version 2.1
En mettant ma classe de Tile Mapping à jour un gros problème s'oppose à moi.
En effet, j'utilise la fonction "getPixel" qui était membre de la classe "Sprite" dans la version 1.6 et qui est membre de la classe "Image" maintenant. Jusque là il n'y a pas trop de problème, il m'a simplement suffi de mettre l'Image à la place du Sprite. Ce qui me donne le code suivant :

Couleur = m_carteImage.getPixel(i, m_LigneEnCours);


Or, j'utilisais auparavant la fonction "SetSubRect" sur mon Sprite, afin de pouvoir changer de map. Donc avec la version 1.6 je peux bel et bien utiliser un "setTextureRect" sur le Sprite, mais cela ne m'est pas très utilie étant donné que le calcul "getPixel" est effectué à partir de l'Image.

Je cherche donc une solution pour soit convertir mon Sprite en Image, soit utiliser "getPixel" sur un Sprite

Merci d'avance ! N'hésitez pas à me demander plus de renseignements si besoin :)

Pages: [1]
anything