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

Auteur Sujet: Changer l'adresse image  (Lu 3194 fois)

0 Membres et 1 Invité sur ce sujet

unitedelite

  • Jr. Member
  • **
  • Messages: 61
    • Voir le profil
Changer l'adresse image
« le: Septembre 20, 2012, 03:12:33 pm »
Bonjours tout le monde,

j'ai actuellement quelques difficulté sur ce point, j'affiche une image de bateau et j'aimerais pouvoir la changer quand il me plait mais lorsque je refait un "image.LoadFromFile("adresse"); " rien ne ce passe il ne change pas l'image.


voila merci de votre aide ^^

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Changer l'adresse image
« Réponse #1 le: Septembre 20, 2012, 03:14:58 pm »
Il faudrait voir un peu plus de code, parce que là... on n'a même pas de quoi essayer de deviner ;)
Laurent Gomila - SFML developer

kamui

  • Sr. Member
  • ****
  • Messages: 291
    • Voir le profil
Re : Changer l'adresse image
« Réponse #2 le: Septembre 20, 2012, 03:33:14 pm »
je dirais que ça ne sert à rien que tu recharges une nouvelle image dans ton objet image, si tu ne l'applique pas à ta texture...

il te manque donc un setTexture(image) que tu dois refaire après le chargement.

(c'est grâce à mon incompréhensible de femme que j'ai réussi à te comprendre je crois : elle aussi crois qu'on entend tout ce qu'elle pense et que donc ce genre de phrase suffit  ;D)

unitedelite

  • Jr. Member
  • **
  • Messages: 61
    • Voir le profil
Re : Changer l'adresse image
« Réponse #3 le: Septembre 20, 2012, 03:39:34 pm »
en gros j'essaye de rendre modulable le système de navire pour pouvoir en ajouter facilement
agencement des dossiers :

Navire -> dossier contenant tout les dossier des différent navire
dossier de navire -> dossier contenant une image du navire, une image des zones de collisions, une image de la position des canons, un fichier txt d'info sur le navire (nombre de canon, position des canons)

et j'aimerais pouvoir changer l'image du navire en modifiant le chemin d’accès a ces images

    m_imageNavire.LoadFromFile("images/navire/"+m_nomNavire+"/bateau.png");
    m_imageNavire.SetSmooth(false);
    m_spriteNavire.SetImage(m_imageNavire);

sauf que quand je change la valeur de "m_nomNavire"

void navire::SetNom(string nom)
{
    m_nomNavire = nom;
}

et que j'utilise une methode

void navire::Actualiser()
{
    positionCanon(m_nomNavire,m_posCanonX,m_posCanonY,m_canonPlace);

    m_imageNavire.LoadFromFile("images/navire/"+m_nomNavire+"/bateau.png");
    m_imageNavire.SetSmooth(false);
    m_spriteNavire.SetImage(m_imageNavire);
}
 

et bien l'image affiché dans le jeu ne change pas
(voici le jeu avec une adresse fixe )

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Changer l'adresse image
« Réponse #4 le: Septembre 20, 2012, 03:42:39 pm »
Ton code a l'air correct. Tu es sûr au moins que m_nomNavire est bien différent ? Tu as fait un peu de debugging pour défricher le terrain ? Avec un peu d'exécution pas à pas ça ne devrait pas être compliqué de comprendre ce qui arrive.

Citer
je dirais que ça ne sert à rien que tu recharges une nouvelle image dans ton objet image, si tu ne l'applique pas à ta texture...

il te manque donc un setTexture(image) que tu dois refaire après le chargement.
Tu mélanges tout là.
Mais imaginons que tu voulais dire "si tu ne l'appliques pas à ton sprite", et que notre ami utilise SFML 2 et ait parlé d'image au lieu de texture, alors c'est quand même faux. Pas besoin de rappeler setTexture (ou setImage dans SFML 1) tant que l'instance est la même, même si son contenu a changé.

Bon, et puis finalement il utilise SFML 1 ;)
Laurent Gomila - SFML developer

unitedelite

  • Jr. Member
  • **
  • Messages: 61
    • Voir le profil
Re : Changer l'adresse image
« Réponse #5 le: Septembre 20, 2012, 03:48:50 pm »
ah ben en faite c'est bon, j'avais mis un nom bidon a la place par défaut j'avais l'erreur d'image qui pouvais pas ce charger dans la console la j'ai créer un nouveau dossier avec une autre image est ça fonctionne, merci de votre aide ^^

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Changer l'adresse image
« Réponse #6 le: Septembre 20, 2012, 03:56:15 pm »
Les fonctions qui renvoient un booléen, c'est pas fait pour rien ;)
Laurent Gomila - SFML developer

kamui

  • Sr. Member
  • ****
  • Messages: 291
    • Voir le profil
Re : Re : Changer l'adresse image
« Réponse #7 le: Septembre 20, 2012, 04:01:33 pm »
Ton code a l'air correct. Tu es sûr au moins que m_nomNavire est bien différent ? Tu as fait un peu de debugging pour défricher le terrain ? Avec un peu d'exécution pas à pas ça ne devrait pas être compliqué de comprendre ce qui arrive.

Citer
je dirais que ça ne sert à rien que tu recharges une nouvelle image dans ton objet image, si tu ne l'applique pas à ta texture...

il te manque donc un setTexture(image) que tu dois refaire après le chargement.
Tu mélanges tout là.
Mais imaginons que tu voulais dire "si tu ne l'appliques pas à ton sprite", et que notre ami utilise SFML 2 et ait parlé d'image au lieu de texture, alors c'est quand même faux. Pas besoin de rappeler setTexture (ou setImage dans SFML 1) tant que l'instance est la même, même si son contenu a changé.

Bon, et puis finalement il utilise SFML 1 ;)

C'est bien ce que j'ai voulu dire, mais moi non plus je ne suis pas très clair ;D et aux temps pour moi puisque ça ne fonctionne pas comme je le pensais
« Modifié: Septembre 20, 2012, 04:03:55 pm par kamui »