功能需要访问另一个函数中的变量

Function needs access to variables in another function

本文关键字:变量 函数 另一个 访问 功能      更新时间:2023-10-16

im试图创建一些函数,一个用于设置动画,第二次播放它,我可以将其设置为查找,但是第二个功能需要访问第一个才能以获取一些变量

    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需要知道animatedSpritefireSmall是什么,但我不知道该怎么做。

如果有任何用途,我的标题类是以下

    class fire
{
private:

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

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

您能否使这些变量成为类的成员,而不是本地化的函数?

例如。(当然,将[类型]更改为正确的类型):

class fire
{
    private: 
        [type] anmatedsprite;
        [type] firesmall;

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

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

Google关于C 中的封装原则,当您了解私人,受保护和公共的含义时,则是Google for Class 友谊。简而言之,友谊允许一个班级的成员"查看"友好班的私人成员。我希望这会有所帮助。