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'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'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.