Bonjour ! J’avais déjà posé une question pour un problème sur mon projet (par rapport à des unique_ptr), mais cette fois-ci, j’ai une autre erreur : J’ai une classe TextureManager qui, comme son nom l’indique, gère les textures. J’ai une autre classe, Sprite, qui elle gère les données du sprite d’une entité. Voici cette classe :
#pragma once
#include <string>
#include <iostream>
#include <SDL2/SDL.h>
#include "ECS.h"
#include "Engine.h"
#include "Component.h"
#include "UptrSdl2.h"
#include "TextureManager.h"
class Sprite : public Component {
public:
Sprite() = default;
Sprite(SDL_Renderer* target, std::string id) : renderTarget(target), textureID(id) {}
virtual ~Sprite() = default;
void init() override final {
texture = TextureManager::get().getTexture(textureID); //l'erreur me renvoie ici
SDL_QueryTexture(texture,nullptr,nullptr,&width,&height);
dest.x = entity->getComponent<Transform>().position.x;
dest.y = entity->getComponent<Transform>().position.y;
dest.w = width*entity->getComponent<Transform>().scale.x;
dest.h = height*entity->getComponent<Transform>().scale.y;
src.x = 0;
src.y = 0;
src.w = width;
src.h = height;
}
void updateDestRect() {
dest.x = entity->getComponent<Transform>().position.x;
dest.y = entity->getComponent<Transform>().position.y;
std::cout << entity->getComponent<Transform>().scale.x << " " << entity->getComponent<Transform>().scale.y << std::endl;
dest.w = width*entity->getComponent<Transform>().scale.x;
dest.h = height*entity->getComponent<Transform>().scale.y;
}
int width = 0;
int height = 0;
SDL_Rect src = {0,0,0,0};
SDL_Rect dest = {0,0,0,0};
std::string textureID = "";
SDL_Texture* texture = nullptr;
SDL_Renderer* renderTarget = nullptr;
SDL_RendererFlip flip = SDL_FLIP_NONE;
};
Lorsque je compile, il me renvoie une erreur dans cette classe, qui me dit "TextureManager has not been declared", sauf que j’ai bien inclus TextureManager dans ce fichier, et ma classe TextureManager est bien implémentée… Quel serait le problème ? ^^'
Merci d’avance pour votre aide !
+0
-0