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