Sprite作为全局变量?

时间:2013-09-23 04:20:23

标签: c++ global-variables textures sprite sfml

我只是想知道你是否可以使用 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行的texturename和第5行的spritename没有存储类或类型说明符。

2 个答案:

答案 0 :(得分:1)

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

您可能不希望使用全局变量,最好将它们存储在作用域和适当的位置,并将它们传递给需要使用它们的其他函数。

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

int main()
{        
    texturename.loadFromFile("texture.png");
    spritename.setTexture(texturename);
}

答案 1 :(得分:0)

如果初始化全局变量,则可以将Sprite作为全局变量。