【问题标题】:Display texture and sprite on the window in class function在类函数中的窗口上显示纹理和精灵
【发布时间】:2021-07-01 20:54:37
【问题描述】:

所以这是我的具有该功能的 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);
    }
}

我的标题

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

public:
    suit();
};

【问题讨论】:

    标签: c++ class object textures sfml


    【解决方案1】:

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

    sprite.setTexture(image&);
    

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

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

    代替:

    image.loadFromFile("Jester.png");
    

    实际上我不知道你是否在重新查看代码后这样做了,但不要忘记使用 draw() 方法绘制你的演员。

    【讨论】:

      猜你喜欢
      • 2014-12-20
      • 1970-01-01
      • 1970-01-01
      • 2014-04-06
      • 2016-04-07
      • 1970-01-01
      • 1970-01-01
      • 2011-08-11
      • 2013-04-07
      相关资源
      最近更新 更多