在类函数中显示窗口上的纹理和精灵

Display texture and sprite on the window in class function

本文关键字:纹理 精灵 窗口 类函数 显示      更新时间:2024-05-24

所以这是我的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();
};

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

sprite.setTexture(image&);

使用'&'调用字体地址操作员应该解决您的问题。您还应该通过调用只加载一次图像

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

而不是:

image.loadFromFile("Jester.png");

事实上,我不知道你是否在重新查看代码后完成了这项工作,但不要忘记使用draw((方法绘制你的actor。