Bonjour a tous, quand je veux afficher un sprite depuis une classe fille, elle ne s'affiche pas.
classe mère:
#include <SFML/Graphics.hpp>
#include <iostream>
#include "Bouton.h" // inutile pour résoudre le problème
Bouton::Bouton() {}
Bouton::Bouton(Vector2f pos, string txtr, short adrs, short adrs_b) {
this->initTexture(txtr, pos);
m_adrs = adrs;
m_adrs_b = adrs_b;
m_txt_ent = false;
}
Bouton::Bouton(Vector2f pos, string txtr, short adrs, short adrs_b) {
this->initTexture(txtr, pos);
m_adrs = adrs;
m_adrs_b = adrs_b;
m_txt_ent = false;
}
void Bouton::initTexture(string str_txtr, Vector2f pos) {
m_texture.loadFromFile(str_txtr);
m_sprite.setTexture(m_texture);
m_sprite.setPosition(pos);
m_itBox = m_sprite.getGlobalBounds();
}
void Bouton::draw(RenderWindow& screen) {
screen.draw(m_sprite);
}
Class fille:
#include <SFML/Graphics.hpp>
#include <iostream>
#include "BoutonKey.h" // inutile pour résoudre le problème
#include "Bouton.h" // inutile pour résoudre le problème
BoutonKey::BoutonKey(Vector2f pos, Vector2f posTxt, string txtr, short adrs, short adrs_b, string txt_def, short txt_max_size, short size, Uint8 color_R, Uint8 color_G, Uint8 color_B, Uint8 color_A) {
Bouton(pos, txtr, adrs, adrs_b);
initTexte(posTxt, txt_def, size, color_R, color_G, color_B, color_A);
}
BoutonKey::~BoutonKey() {}
void BoutonKey::initTexte(Vector2f posTxt, string txt_def, short size, Uint8 color_R, Uint8 color_G, Uint8 color_B, Uint8 color_A) {
m_text_aff.setString(txt_def);
m_text_aff.setCharacterSize(size);
m_text_aff.setFillColor(Color(color_R, color_G, color_B, color_A));
}
void BoutonKey::draw(RenderWindow& screen) {
screen.draw(m_text_aff);
}
Main:
#include <SFML/Graphics.hpp>
#include <iostream>
#include "Bouton.h"
#include "BoutonKey.h"
using namespace std;
using namespace sf,
// Initialisation de la fenêtre, de toute les variables
vector<unique_ptr<Bouton>> list_bouton;
list_bouton.push_back(make_unique<BoutonKey>(Vector2f(50, 125), Vector2f(20, 20), "txtr.jpg", 1, 0, "txt def", 12, 24, 185, 185, 185, 255)); // ne s'affiche pas
list_bouton.push_back(make_unique<Bouton>(Vector2f(50, 200), "txtr.jpg", 1, 3)); // celui ci s'affiche correctement
// ouverture de la boucle d’événement,...
for (auto&& bouton : list_bouton) {
bouton->draw(screen);
}
screen.display();
// fin de la boucle
Merci d'avance.