Я делаю игру с SFML и испытываю проблемы с добавлением текстур в Monster Stripes. Я храню текстуру в качестве частной переменной в классе Monster и загружаю его файл в конструктор.
class Potwor:public sf::Drawable
{
private:
sf::Texture MonsterTexture;
...
Potwor::Potwor(sf::Vector2f pozycja,int rodzaj) {
MonsterTexture.loadFromFile("Potwor.png");
MonsterSprite.setTexture(MonsterTexture);
...
< /code>
В классе игры у меня есть вектор объектов класса Monster, но когда я нарисую их, текстура пустая. < /p>
class Gra
{
private:
std::vector
potwory1;
...
void Gra::render() {
for (Potwor& potwor : potwory1) {
if (gracz.PozY() < potwor.GetY()) {
window.draw(potwor);
}
}
< /code>
Метод рисования в классе монстра выглядит следующим образом: < /p>
void Potwor::draw(sf::RenderTarget& target, sf::RenderStates states) const
{
target.draw(ksztalt, states);
target.draw(HitboxShape, states);
target.draw(MonsterSprite);
if (rodzaj == 3) {
for (auto& projectile : projectiles) {
target.draw(projectile.ksztalt);
target.draw(projectile.HitBoxShape);
}
}
}
< /code>
У меня была похожая проблема с классом игрока, но это работало, когда я инициировал объект, как это: < /p>
Gra::Gra() :gracz({ 375.f,275.f }), ... {
...
Я делаю игру с SFML и испытываю проблемы с добавлением текстур в Monster Stripes. Я храню текстуру в качестве частной переменной в классе Monster и загружаю его файл в конструктор. [code]class Potwor:public sf::Drawable { private: sf::Texture MonsterTexture; ...
Potwor::Potwor(sf::Vector2f pozycja,int rodzaj) { MonsterTexture.loadFromFile("Potwor.png"); MonsterSprite.setTexture(MonsterTexture); ... < /code> В классе игры у меня есть вектор объектов класса Monster, но когда я нарисую их, текстура пустая. < /p> class Gra { private: std::vector potwory1; ...
void Gra::render() { for (Potwor& potwor : potwory1) { if (gracz.PozY() < potwor.GetY()) { window.draw(potwor); } } < /code> Метод рисования в классе монстра выглядит следующим образом: < /p> void Potwor::draw(sf::RenderTarget& target, sf::RenderStates states) const { target.draw(ksztalt, states); target.draw(HitboxShape, states); target.draw(MonsterSprite); if (rodzaj == 3) { for (auto& projectile : projectiles) { target.draw(projectile.ksztalt); target.draw(projectile.HitBoxShape); } } } < /code> У меня была похожая проблема с классом игрока, но это работало, когда я инициировал объект, как это: < /p> Gra::Gra() :gracz({ 375.f,275.f }), ... { ... [/code] Я не знаю, почему это сработало или как сделать что-то подобное с вектором объектов. Полный код: https://github.com/darksourerer-swmg/cpp -Game