我試圖創建一些函數,一個設置動畫,第二個播放它,我可以設置它查找,但第二個函數需要訪問第一個以獲得一些變量函數需要訪問另一個函數中的變量
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