sf::Texture Lovedek::texture.loadFromFile("bullet_graphics.png",sf::IntRect(0, 0, 2, 10));
Эта строка имеет некоторые синтаксические ошибки сама по себе, но в любом случае она не загружает текстуру в нужном месте.
Сначала вам нужно где-то инициализировать переменную статического класса, обычно в файле cpp для этого класса.
// In your header for Lovedek
class Lovedek
{
...
static sf::Texture texture; // Declare the static texture
...
};
// In your cpp file for Lovedek
sf::Texture Lovedek::texture; // Initialize the static texture
Тогда подумайте о , когда вы хотите загрузить текстуру, возможно, в начале вашей функции main
, или в какой-то функции настройки, верно?
Вы можете либо сделать Lovedek::texture
общедоступной и загрузить текстуру вне класса, либо вы можете оставить ее закрытой и реализовать что-то вроде LoadAssets()
статического метода для этого.
Для публичного подхода:
// Make Lovedek::texture a public class member
// Then put this somewhere in your game's setup (before starting the game loop)
Lovedek::texture.loadFromFile("bullet_graphics.png", sf::IntRect(0, 0, 2, 10));
Для частного подхода:
// Change your Lovedek class
class Lovedek
{
static sf::Texture texture;
public:
static void LoadAssets()
{
texture.loadFromFile("bullet_graphics.png", sf::IntRect(0, 0, 2, 10));
}
}
// Then put this somewhere in your game's setup (before starting the game loop)
Lovedek::LoadAssets();