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

Auteur Sujet: Error: Could not load texture  (Lu 3452 fois)

0 Membres et 1 Invité sur ce sujet

Lkk

  • Newbie
  • *
  • Messages: 1
    • Voir le profil
Error: Could not load texture
« le: Juin 21, 2023, 01:46:05 pm »
Problème quand j'essaye de charger une texture, voici le passage du code en question :

void Player::initPlayer(float posX, float posY)
{
    if (!m_spriteTexture.loadFromFile("images/player.png")) // problème ici
    {
        std::cout << "Error: Could not load texture" << std::endl;
        return;
    }

    m_player.setTexture(m_spriteTexture);
    m_player.setPosition(sf::Vector2f(posX, posY));
}

J'ai déjà changer le répertoire de projet de travail.

J'utilise Visual Studio 2022 et j'ai également une erreur de débogage

Exception non gérée à 0x504638C4 (vcruntime140.dll) dans SMFL.exe : 0xC0000005 : Violation d'accès lors de la lecture de l'emplacement 0x0B092000.

Et aussi dans la sortie j'ai des caractères étrange :

Failed to load image "õ‗²²²²    Ìf┴± îh2█yîQ█y░ÅáÌG
ıf┌± ê0█yöc█yP^J
P^J
Éıhth_J
h_J
╠f˱ î4Ptî¼Èý8\|    ╦fȱ Ç                                                ┬fݱ îh2█yîQ█y░ŭ˨fµ± îîyG
îyG
    h│G
ê│G
        ­f ± î³/█y,c█yÏ,Ó{D░öp]J
´f­± î,sÎz©z░_J
        µfë± WGL_EXT_pixel_format_packed_float              aé± î╚7█yDV█y░½8]J

Óaø± î╚7█yDV█y(®`J
à
Éa£± ê X X

(il y en a beaucoup plus que ça)
Le problème persiste même quand je lance l'exécutable ou je met bien l'image de mon sprite dans le bon dossier.

Partie de player.cpp

#include "Player.h"
// Fonction d&#39;initialisation

void Player::initVariables()
{
    m_life = 3;
    m_speed = 0.5;
}

void Player::initPlayer(float posX, float posY)
{
    if (!m_spriteTexture.loadFromFile("images/player.png"))
    {
        std::cout << "Error: Could not load texture" << std::endl;
        return;
    }

    m_player.setTexture(m_spriteTexture); .
    m_player.setPosition(sf::Vector2f(posX, posY));
}
// Constructeur

Player::Player(float width, float height)
{
        initVariables();
        initPlayer(width / 2, height / 2);
}


partie de game.cpp
#include "Game.h"

// Fonction d&#39;initialisation
void Game::initVariables()
{
        m_player = nullptr;
        m_window = nullptr;
        m_gameStarted = true;
        m_gameOver = false;
        m_dt = 1.f / 60.f;
}

void Game::initWindow()
{
        m_videoMode.width = 800;
        m_videoMode.height = 600;
        m_window = new sf::RenderWindow(m_videoMode, "Survival & Zombie", sf::Style::Close | sf::Style::Titlebar);
}

void Game::initSprite()
{
        m_player = new Player(m_videoMode.width, m_videoMode.height);
}

// Constructeur & Destructeur

Game::Game()
{
        this->initVariables();
        this->initWindow();
        this->initSprite();
}


J'ai passé beaucoup de temps sur le problème et ça me bloque beaucoup pour mon apprentissage SFML,
Si vous avez besoin de plus d'informations je reste disponible.
« Modifié: Juin 21, 2023, 01:47:41 pm par Lkk »

G.

  • Hero Member
  • *****
  • Messages: 1593
    • Voir le profil
Re: Error: Could not load texture
« Réponse #1 le: Juin 21, 2023, 09:53:11 pm »
En général quand t'as plein de caractères étranges dans la console quand tu charges une image, c'est que tu compiles en mode Release en ayant lié la version Debug de SFML, ou à l'inverse compiles en mode Debug avec la version Release de SFML.
A vérifier :p

quicklyrufous

  • Newbie
  • *
  • Messages: 1
    • Voir le profil
Re: Error: Could not load texture
« Réponse #2 le: Septembre 26, 2024, 09:56:11 am »
Le problème persiste même quand je lance l'exécutable ou je met bien l'image de mon sprite dans le bon dossier.
Partie de player.cpp

#include "Player.h"
// Fonction d&#39;initialisation

void Player::initVariables()
{
    m_life = 3;
    m_speed = 0.5;
}

void Player::initPlayer(float posX, float posY)
{
    if (!m_spriteTexture.loadFromFile("images/player.png"))
    {
        std::cout << "Error: Could not load texture" << std::endl;
        return;
    }

    m_player.setTexture(m_spriteTexture); .
    m_player.setPosition(sf::Vector2f(posX, posY));
}
// Constructeur

Player::Player(float width, float height)
{
        initVariables();
        initPlayer(width / 2, height / 2);
}

Assurez-vous que le chemin d'accès au fichier image « images/player.png » est correct. Le chemin d'accès est relatif au répertoire de travail de l'exécutable, vérifiez donc que le dossier images se trouve là où l'exécutable est exécuté. Assurez-vous que player.png existe dans le dossier images et qu'il n'est pas corrompu. Vous pouvez essayer d'ouvrir l'image dans une visionneuse d'images.