Проблема в том, что вы повторно используете переменную gameTime
, когда то, что вы хотите сделать, это начать одновременно с уменьшением. Итак, вы хотите startGameTime
переменную.
Только с переменной gameTime
:
http://jsfiddle.net/DPTJ3/1/
С переменной startGameTime
для перезапуска значения gameTime
перед уменьшением:
http://jsfiddle.net/DPTJ3/
function getNewTime() {
gameTime = startGameTime;
for (var i = 0; i < levelCount; i++) {
gameTime -= 2;
}
}
function logData() {
log = document.getElementById('log');
log.innerHTML += "LEVEL: " + levelCount + "\nGTIME: " + gameTime + "\n\n";
}
var levelCount = 1;
var startGameTime = 60;
var gameTime = 60;
logData();
for (var i = 0; i < 10; i++) {
levelCount++;
getNewTime();
logData();
}
OUTPUT
LEVEL: 1
GTIME: 60
LEVEL: 2
GTIME: 56
LEVEL: 3
GTIME: 54
LEVEL: 4
GTIME: 52
LEVEL: 5
GTIME: 50
LEVEL: 6
GTIME: 48
LEVEL: 7
GTIME: 46
LEVEL: 8
GTIME: 44
LEVEL: 9
GTIME: 42
LEVEL: 10
GTIME: 40
LEVEL: 11
GTIME: 38
EDIT
Кроме того, если вы хотите точно уменьшить, вы, вероятно, должны учитывать тот факт, что первый уровень действительно равен 0 вместо одного для функции getNewTime () . Если вы заметили, кажется, что первый уменьшается на два уровня. Чтобы решить эту проблему, вы можете:
for (var i = 0; i < levelCount - 1; i++) { // Notice the - 1