C++ 函数需要访问另一个函数中的变量

C++ 函数需要访问另一个函数中的变量,c++,function,class,animation,C++,Function,Class,Animation,我正在尝试创建一些函数,一个用于设置动画,第二个用于播放动画,我可以设置查找,但第二个函数需要访问第一个函数才能获得一些变量 void fire::fireSetup(void) { fireTexture.loadFromFile("firesprite.png"); Animation fireSmall; fireSmall.setSpriteSheet(fireTexture); fireSmall.addFrame(sf::IntRect(6

我正在尝试创建一些函数,一个用于设置动画,第二个用于播放动画,我可以设置查找,但第二个函数需要访问第一个函数才能获得一些变量

    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
firesmal
是什么,但我不知道如何做

如果它有任何用途,我的头类如下

    class fire
{
private:


public:
    sf::Clock fireClock;
    sf::Texture fireTexture;


    void fireSetup(void);
    void fireAnim(void);

};

你能让这些变量成为类的成员而不是函数的局部变量吗

e、 g.(将[type]更改为正确的课程类型):


你能让这些变量成为类的成员而不是函数的局部变量吗

e、 g.(将[type]更改为正确的课程类型):


谷歌关于C++中的封装原则,当你理解了私有、保护和公共的含义时,谷歌就为类<强>友情< /强>。简而言之,友谊允许一个班级的成员“看到”友好班级的私人成员。我希望这有帮助。

< P>谷歌关于C++中的封装原则,当你理解了私有、保护和公共的含义,那么谷歌就可以得到类<强>友谊< /强>。简而言之,友谊允许一个班级的成员“看到”友好班级的私人成员。我希望这能有所帮助。

动画精灵应该来自哪里?如果它属于fireAnim()的调用方,则将其作为参数传递给该函数。您可以创建一个由两个函数共享的私有类变量。我的目标是设置精灵,如帧和纹理等,然后循环动画,如果我将其设为一个函数,则我的while循环将继续在精灵设置中循环,我认为这意味着不断加载相同的纹理等等。抱歉,如果这看起来很愚蠢的话,我正在学习c++的阶段,数据通常是通过作为类的成员在类中的方法(函数)之间共享的。理想情况下,他们应该是班级的私人成员。在类的构造函数中创建它们,在类的析构函数中销毁它们。animatedSprite应该来自哪里?如果它属于fireAnim()的调用方,则将其作为参数传递给该函数。您可以创建一个由两个函数共享的私有类变量。我的目标是设置精灵,如帧和纹理等,然后循环动画,如果我将其设为一个函数,则我的while循环将继续在精灵设置中循环,我认为这意味着不断加载相同的纹理等等。抱歉,如果这看起来很愚蠢的话,我正在学习c++的阶段,数据通常是通过作为类的成员在类中的方法(函数)之间共享的。理想情况下,他们应该是班级的私人成员。在类的构造函数中创建它们,在类的析构函数中销毁它们。
class fire
{
    private: 
        [type] anmatedsprite;
        [type] firesmall;



    public:
        sf::Clock fireClock;
        sf::Texture fireTexture;


    void fireSetup(void);
    void fireAnim(void);

};