我正在尝试创建一些函数,一个用于设置动画,第二个用于播放它,我可以设置它,但第二个函数需要访问第一个函数才能获取一些变量
void fire::fireSetup(void)
{
fireTexture.loadFromFile("firesprite.png");
Animation fireSmall;
fireSmall.setSpriteSheet(fireTexture);
fireSmall.addFrame(sf::IntRect(64, 0, 64, 64));
fireSmall.addFrame(sf::IntRect(128, 0, 64, 64));
fireSmall.addFrame(sf::IntRect(192, 0, 64, 64));
fireSmall.addFrame(sf::IntRect(0, 0, 64, 64));
AnimatedSprite animatedSprite(sf::seconds(0.1), false, true);
animatedSprite.setPosition(sf::Vector2f(300,300));
}
void fire::fireAnim(void)
{
sf::Time frameTime = fireClock.restart();
animatedSprite.play(fireSmall);
animatedSprite.update(frameTime);
window.mywindow.draw(animatedSprite);
}
如您所见,函数 fireAnim
需要知道什么是 animatedSprite
和 fireSmall
但我不知道该怎么做.
如果它有任何用途,我的头类如下
class fire
{
private:
public:
sf::Clock fireClock;
sf::Texture fireTexture;
void fireSetup(void);
void fireAnim(void);
};
最佳答案
您能否使这些变量成为类的成员而不是函数的局部变量?
例如(当然,将 [type] 更改为正确的类型):
class fire
{
private:
[type] anmatedsprite;
[type] firesmall;
public:
sf::Clock fireClock;
sf::Texture fireTexture;
void fireSetup(void);
void fireAnim(void);
};
关于c++ - 函数需要访问另一个函数中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21468304/