1

我只是想知道您是否可以使用SFML 2.0将纹理精灵设置为全局变量。我需要通过 int main() 函数以外的函数将精灵绘制到屏幕上。但是,我似乎无法在函数之外声明和定义纹理和精灵。这是一些类似于我的示例代码:

#include <SFML/Graphics.hpp>

sf::Sprite spritename;
sf::Texture texturename;

texturename.loadFromFile("texture.png");
spritename.setTexture(texturename);

int main()
{
//code here
}

但是,编译器会说第 4 行的纹理名称和第 5 行的精灵名称没有存储类或类型说明符。

4

2 回答 2

1

在主函数中初始化全局变量。您仍然可以在此 cpp 中定义的任何其他函数中访问它们。

您可能不希望 as 全局变量,最好将它们存储在适当的范围内,并将它们传递给需要它们使用的其他函数。

sf::Sprite spritename;
sf::Texture texturename;

int main()
{        
    texturename.loadFromFile("texture.png");
    spritename.setTexture(texturename);
}
于 2013-09-23T04:28:00.647 回答
0

如果你初始化你的全局变量,那么你可以将 Sprites 作为全局变量。

于 2016-10-04T12:00:49.357 回答