C ++的新手,我正在尝试为视频游戏制作一个简单的开始屏幕。我希望“开始”屏幕从屏幕底部滚动。为此,我有一些在称为Update的函数中访问的成员变量。我遇到的问题是我在具有非零值的构造函数中初始化了scrollStart
。但是,当调用Update
时,我打印出scrollStart
的y值,它是0
。此类中只有一个成员函数不会触及scrollStart
,所以我不知道为什么它会重置为零。有谁更熟悉c ++有任何想法为什么会发生这种情况?
我的头文件喜欢这样的东西(不相关的东西已删除):
class StartScreen : public GameEntity
{
private:
Vector2 scrollStart;
public:
void Update();
};
我的cpp文件看起来像这样:
StartScreen::StartScreen()
{
...
Vector2 scrollStart = Vector2(SCREEN_WIDTH*0.5f, SCREEN_HEIGHT);
printf("scrollStart Y: %f\n", scrollStart.y); // prints 868 as it should
}
StartScreen::Update()
{
printf("scrollStart Y: %f\n", scrollStart.y); // prints 0
}