在 class 函数中的 window 上显示纹理和精灵

Display texture and sprite on the window in class function

所以这是我的cpp文件,有这个功能。我注释掉了一些成员因素,因为我觉得它根本没有被阅读,但会包括它们以查看我是否能够使用它们。我的纹理似乎能够出现,但无论我尝试放置它的大小或位置如何,它都没有显示出来。它似乎加载正确,因为我有 if 语句来检查它何时无法加载我想使用的纹理。那么我做错了什么根本没有出现?

//sf::Texture suit::image = suit::setUpTexture();
//
//sf::Texture& suit::setUpTexture()
//{
//    image.loadFromFile("Jester.png");
//    sf::Sprite sprite;
//    sprite.setTexture(image);
//
//    return image;
//}

suit::suit()
{
    sf::Texture image;

    image.loadFromFile("Jester.png");
    sf::Sprite sprite;
    sprite.setTexture(image);
    sf::Sprite::setScale(5,5);

    sprite.setPosition(950,950);

    if(!image.loadFromFile("Jester.png"))
    {
        exit(1);
    }
}

我的Header

class suit : public sf::Sprite
{
private:
//    static sf::Texture image;
//    static sf::Texture& setUpTexture();

public:
    suit();
};

将纹理链接到 sprite 时,您需要告诉该 sprite 对一个纹理的实际引用。

sprite.setTexture(image&);

使用“&”运算符调用字体地址应该可以解决您的问题。 您还应该通过调用只加载一次图像:

if(!image.loadFromFile("Jester.png"))
{
    exit(1);
}

而不是:

image.loadFromFile("Jester.png");

其实看了你的代码我不知道你有没有做到,但是不要忘记使用 draw() 方法绘制你的演员。