无法将图像加载到纹理矢量 (SFML)
Failed to load image to texture vector (SFML)
我们正在尝试将纹理加载到纹理向量中,以便能够构建游戏。
一旦到达我们试图将图像加载到矢量的行,程序就会被抛出。
向量的定义是:
向量> m_textureVec;
#include "Resources.h"
#include <thread>
#include <SFML/Graphics.hpp>
using std::vector;
Resources Resources::m_instance = Resources();
Resources::Resources()
{
vector<unique_ptr<sf::Texture>> m_textureVec;
m_textureVec.resize(8);
m_textureVec[0]->loadFromFile("digger.png");
m_textureVec[1]->loadFromFile("monster.png");
m_textureVec[2]->loadFromFile("diamond.png");
m_textureVec[3]->loadFromFile("present.png");
m_textureVec[4]->loadFromFile("stone.png");
m_textureVec[5]->loadFromFile("wall.png");
m_textureVec[6]->loadFromFile("background.png");
m_textureVec[7]->loadFromFile("empty.png");
}
您需要为 unique_ptr
分配内存。现在你有 8 个 unique_ptr
没有任何指向。
Resources::Resources()
{
vector<unique_ptr<sf::Texture>> m_textureVec;
m_textureVec.resize(8);
m_textureVec.push_back(std::unique_ptr<sf::Texture>(new sf::Texture()));
m_textureVec[0]->loadFromFile("digger.png");
//etc
}
此外,当您的 Resources()
功能完成时,您将失去您的 m_textureVec
。最好在更持久的环境中创建该变量。
我们正在尝试将纹理加载到纹理向量中,以便能够构建游戏。 一旦到达我们试图将图像加载到矢量的行,程序就会被抛出。 向量的定义是:
向量> m_textureVec;
#include "Resources.h"
#include <thread>
#include <SFML/Graphics.hpp>
using std::vector;
Resources Resources::m_instance = Resources();
Resources::Resources()
{
vector<unique_ptr<sf::Texture>> m_textureVec;
m_textureVec.resize(8);
m_textureVec[0]->loadFromFile("digger.png");
m_textureVec[1]->loadFromFile("monster.png");
m_textureVec[2]->loadFromFile("diamond.png");
m_textureVec[3]->loadFromFile("present.png");
m_textureVec[4]->loadFromFile("stone.png");
m_textureVec[5]->loadFromFile("wall.png");
m_textureVec[6]->loadFromFile("background.png");
m_textureVec[7]->loadFromFile("empty.png");
}
您需要为 unique_ptr
分配内存。现在你有 8 个 unique_ptr
没有任何指向。
Resources::Resources()
{
vector<unique_ptr<sf::Texture>> m_textureVec;
m_textureVec.resize(8);
m_textureVec.push_back(std::unique_ptr<sf::Texture>(new sf::Texture()));
m_textureVec[0]->loadFromFile("digger.png");
//etc
}
此外,当您的 Resources()
功能完成时,您将失去您的 m_textureVec
。最好在更持久的环境中创建该变量。