我只是想知道你是否可以使用 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没有存储类或类型说明符。
答案 0 :(得分:1)
在main函数中初始化全局变量。您仍然可以在此cpp中定义的任何其他函数中访问它们。
您可能不希望使用全局变量,最好将它们存储在作用域和适当的位置,并将它们传递给需要使用它们的其他函数。
sf::Sprite spritename;
sf::Texture texturename;
int main()
{
texturename.loadFromFile("texture.png");
spritename.setTexture(texturename);
}
答案 1 :(得分:0)
如果初始化全局变量,则可以将Sprite作为全局变量。