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.
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.
geometry dash world (https://geometrydashworld.net)
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);
}
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.