我对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();
}
我什至已指定如果图像未加载但似乎图像已加载,则抛出错误。我想我对发生的事情有一点想法,那就是它与范围有关,但我不知道如何。(忽略我尚未初始化的其他函数)
我不确定,但是将PTexture存储在游戏类中。我希望可以修复该错误。