Новичок в С++, я пытаюсь сделать простой стартовый экран для видеоигры. Я хочу, чтобы начальный экран прокручивался снизу экрана. Для этого у меня есть несколько переменных-членов, доступ к которым осуществляется в функции Update. У меня проблема в том, что я инициализирую scrollStart
в конструкторе с ненулевыми значениями. Однако, когда вызывается Update
, я распечатываю значение y scrollStart
, и оно равно 0
. В этом классе есть только одна другая функция-член, которая не касается scrollStart
, поэтому я понятия не имею, почему она сбрасывается до нуля. Кто-нибудь, более знакомый с С++, знает, почему это происходит?
Мой заголовочный файл выглядит примерно так (удалены ненужные вещи):
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
}
m_scrollStart
, чтобы вы могли сразу сказать, что это переменная-член (поле), без необходимости использоватьthis->
сумасшествие повсюду. - person 3Dave   schedule 02.07.2018