代码之家  ›  专栏  ›  技术社区  ›  Victor Cano

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

  •  0
  • Victor Cano  · 技术社区  · 5 年前

    这是我的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();
    };
    
    0 回复  |  直到 5 年前
        1
  •  2
  •   McChastenay    5 年前

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

    sprite.setTexture(image&);
    

    使用“&”调用字体地址接线员应该解决你的问题。 您还应通过以下方式仅加载一次图像:

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

    而不是:

    image.loadFromFile("Jester.png");
    

    实际上,我不知道您是否在重新阅读代码后完成了该操作,但请不要忘记使用draw()方法绘制演员。

    推荐文章