SFML, пустая текстура загружена на Sprite - PullRequest
0 голосов
/ 08 апреля 2020

Я довольно новичок в SFML. Итак, я учился загружать текстуру в Sprite, и кажется, что я не могу сделать это правильно. Все, что загружается, это белый квадрат, и он не выдает сообщение об ошибке. Вот код:

#include <SFML/Graphics.hpp>
#include <iostream>
using namespace std;

class Game
{
   public:
     Game();
     void run();
   private:
      void processevents(), update(), render();
      void HPI(sf::Keyboard::Key key, bool isPressed);
   private:
      bool IMU, IMD, IMR, IML; 
      sf::RenderWindow MW;
      sf::Sprite O; 
};

Game::Game() :MW(sf::VideoMode(1200, 650), "Dominus"), O() {
    sf::Texture PTexture;
    if (!PTexture.loadFromFile("Fridgus.png")) {
        throw std::runtime_error("Could not load image.png");
    }
    O.setTexture(PTexture);
    O.setPosition(400.f, 250.f);
}
void Game::run() {
    while (MW.isOpen()) {
        processevents();
        update();
        render();
    }
}
void Game::render() {
    MW.clear();
    MW.draw(O);
    MW.display();
}

int main()
{
    Game game;
    game.run();
}

Я даже указал, чтобы выдать ошибку, если изображение не загружается, но кажется, что изображение загружается. Я думаю, что у меня есть небольшое представление о том, что происходит, и это как-то связано с областью, но я не понимаю, как. (Игнорировать другие функции, которые я не инициализировал)

1 Ответ

0 голосов
/ 11 апреля 2020

Я не уверен, но храните PTexture в игровом классе. Я надеюсь, что это исправляет ошибку.

...