我试图创建一些函数,一个设置动画,第二个播放它,我可以设置它查找,但第二个函数需要访问第一个以获得一些变量函数需要访问另一个函数中的变量
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);
};
animatedSprite应该从哪里来?如果它由fireAnim()的调用者拥有,则将其作为参数传递给该函数。 – Joky
您可以创建一个由两个函数共享的私有类变量。 –
我的目标是设置精灵,如框架和纹理等,然后循环动画,如果我使它成为一个函数,那么我的while循环将继续循环通过精灵设置,我会假设意味着不断加载相同的纹理等一遍又一遍。对不起,如果这看起来很愚蠢,即时通讯在学习阶段C++ – Mystic