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

时间:2014-01-30 21:58:32

标签: c++ function class animation

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

    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);

};

2 个答案:

答案 0 :(得分:3)

你能让这些变量成为该类的成员而不是函数的本地成员吗?

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

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



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


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

};

答案 1 :(得分:1)

谷歌关于C ++中的封装原则,当你理解私有,受保护和耻辱的意义,然后谷歌的友谊。简而言之,友谊允许一个班级的成员“看到”友好阶层的私人成员。我希望这会有所帮助。