Я пытаюсь код счетчика для класса, который я сделал в C ++.
Я передаю количество времени, deltaT, методу класса Wake, который просто добавляет его к значению, уже сохраненному переменной в классе. Код является:
void checkPlayerWakes(int deltaT){
for(size_t i = 0; i < game.getPlayer().getWakes().size(); i++){
Wake& w = game.getPlayer().getWakes().at(i);
w.age(deltaT);
}
}
Однако таймер, который должен увеличиваться, остается равным 0.
Код для изменения таймера:
void Wake::age(int millis) {
cout << "Updating : " << currentLife;
this->currentLife += millis;
setAlpha(((double)currentLife)/((double)lifeTime));
cout << " " << currentLife << endl;
}
E.g.
first current life: 0
second current life: 16
Я знаю, что если бы я использовал
Wake w = something
w.age(deltaT)
это не сработает, потому что «w» будет просто копией объекта. Тем не менее, это явно не моя проблема здесь? Также game.getPlayer () также возвращает ссылку, PLAYERSHIP&,
В прошлый раз у меня была похожая проблема, она была решена путем вызова и возврата ссылок, а не только ClassName. Я все еще делаю что-то не так?
getWakes()
Также необходимо вернуть ссылку, и должен вернуть vector&
в отличие от вектора.
Я добавляю это здесь, чтобы убедиться, что этот вопрос помечен как ответ.
Других решений пока нет …