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

Auteur Sujet: [Résolu]Charger Texture sans indiquer racine  (Lu 2595 fois)

0 Membres et 1 Invité sur ce sujet

jules552

  • Newbie
  • *
  • Messages: 3
    • Voir le profil
[Résolu]Charger Texture sans indiquer racine
« le: Janvier 16, 2017, 07:59:23 pm »
Bonjour à tous!

Je commence le développement en c++ et j'aime essayer des choses que j'ai apprises en utilisant la SMFL, je m'aide donc de la doc de la SMFL mais je n'arrive pas à comprendre comment éviter de charger une texture en indiquant tout le chemin depuis la racine du disque jusqu'au fichier concerné.On peut retrouver sur la doc de la SMFL ceci :

La fonction loadFromFile échoue parfois sans raison apparente. Première chose à faire, vérifiez le message d'erreur affiché par SFML dans la sortie standard (la console). Si le message est unable to open file, assurez-vous que le répertoire de travail (qui est le répertoire relativement auquel tout fichier sera interprété) est celui auquel vous vous attendez : lorsque vous lancez votre application depuis l'explorateur de fichiers, le répertoire de travail est le répertoire de l'exécutable, pas de problème généralement dans ce cas ; mais si vous lancez votre programme depuis votre EDI (Visual Studio, Code::Blocks, ...) alors le répertoire de travail est parfois le répertoire du projet. Pas de panique : cela peut normalement être modifié directement dans les options de votre projet.

Je n'arrive pas à comprendre où changer le répertoire de travail (où de projet j'ai pas compris le sens de la phrase en faites :D) , sachant que j'utilise l'IDE Visual Studio 15.

Est-ce que quelqu'un aurait l’amabilité de m'aider ?

Merci d'avance ;)
« Modifié: Janvier 16, 2017, 09:40:00 pm par jules552 »

Guillaume__

  • Newbie
  • *
  • Messages: 42
    • Voir le profil
Re : Charger Texture sans indiquer racine
« Réponse #1 le: Janvier 16, 2017, 08:40:48 pm »
Bonjour jules,

Voilà mon conseil, pour charger une ressource relativement à ton programme poses toi la question suivante : "Où se trouve mon image pour mon programme ?"

Supposons que ton projet soit constitué de l'arborescence suivante :
MonProjet
    _ data
        _ image.png
    Programme.exe

Dans cette configuration de projet pour accéder à ton fichier image.png depuis l'emplacement de Programme.exe tu vas logiquement faire le chemin suivant data => image.png.

Donc en somme ceci :
sf::Texture myTexture;
myTexture.loadFromFile("data/image.png");
 

En espérant avoir réussi à éclaircir le sujet, je te souhaite une bonne continuation dans la poursuite de ton projet.
Cordialement G.
Rejoignez-nous sur le serveur
Discord SFML

jules552

  • Newbie
  • *
  • Messages: 3
    • Voir le profil
Re : Charger Texture sans indiquer racine
« Réponse #2 le: Janvier 16, 2017, 09:14:56 pm »
Bonsoir,

Merci de m'aider mais c'est malheureusement ce que je faisais mais ça ne fonctionnait pas, je dois forcement indiquer mon arborescence de mon disque C:/ jusqu'au fichier concerner, sinon il ne veut pas charger la texture.

Guillaume__

  • Newbie
  • *
  • Messages: 42
    • Voir le profil
Re : Charger Texture sans indiquer racine
« Réponse #3 le: Janvier 16, 2017, 09:27:35 pm »
Il faut s'assurer que le programme exécuté depuis l'IDE accède bien de la même façon au dossier data que le programme exécuté dans bin/release (ou debug).

Ainsi il existe deux dossiers data :
_ un auquel se réfère l'IDE lorsqu'il exécute lui-même le programme
_ un auquel se réfère le programme lorsqu'on le lance depuis son dossier d'origine

L'arborescence devrait donc avoir la structure suivante :
MonProjet
    _ bin
        _ release
            _ data
                _ image.png
            Programme.exe
    _ data
        _ image.png
    main.cpp

Cordialement G.
Rejoignez-nous sur le serveur
Discord SFML

jules552

  • Newbie
  • *
  • Messages: 3
    • Voir le profil
Re : Charger Texture sans indiquer racine
« Réponse #4 le: Janvier 16, 2017, 09:39:17 pm »
A d'accord je comprend mieux maintenant ^^
Merci beaucoup à toi :)

Guillaume__

  • Newbie
  • *
  • Messages: 42
    • Voir le profil
Re : [Résolu]Charger Texture sans indiquer racine
« Réponse #5 le: Janvier 16, 2017, 09:46:34 pm »
Au plaisir.
Bonne continuation dans ton projet.

Cordialement G.
« Modifié: Janvier 16, 2017, 09:48:11 pm par Guillaume__ »
Rejoignez-nous sur le serveur
Discord SFML

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : [Résolu]Charger Texture sans indiquer racine
« Réponse #6 le: Janvier 16, 2017, 10:36:23 pm »
Ou alors clic droit sur le projet > Proprietés > Débogage > Répertoire de travail : mettre $(TargetDir) au lieu de $(ProjectDir) comme ça les deux coïncident et pas besoin de dupliquer quoique ce soit (et c'est ce que voulait dire le tutoriel).
Laurent Gomila - SFML developer

 

anything