Game.prototype._update = function()
{
with (myGame)
{
var thisUpdate = new Date();
var dt = (thisUpdate - _lastUpdate) / 1000;
_lastUpdate = new Date();
levelObj.levelDuration += dt;
levelObj.update(dt);
if (_mouseDown)
playerAttack(0);
playerHealthElement.innerHTML = _players[0].health + "%
" + playerLives + " Lives";
accuracyElement.innerHTML = hits + " hits (" + Math.floor(hits / shots * 100) + "%)
" + kills + " kills (" + Math.floor(kills / levelObj.totalEnemies * 100) + "%)";
playerScoreElement.innerHTML = _playerScore;
var fpsDT = (thisUpdate - _lastFPSUpdate);
_lastFPSFrames++;
if (fpsDT >= 250)
{
fpsDT /= 1000;
fpsElement.innerHTML = "fps: " + (Math.floor((_lastFPSFrames / fpsDT) * 10) / 10) + "
dt: " + (Math.floor(dt * 1000) / 1000);
_lastFPSFrames = 0;
_lastFPSUpdate = thisUpdate;
}
if (_playerScore > _nextExtraLife)
{
_nextExtraLife += 50000;
playerLives++;
}
for (var y in _playerProjectiles)
{
for (var x in _enemies)
{
if (_enemies[x].isCollide(_playerProjectiles[y]))
{
if (_enemies[x].health > 0)
{
_enemies[x].health -= _playerProjectiles[y].health;
hits++;
if (_enemies[x].health <= 0)
{
playerScore(_enemies[x].worth);
kills++;
}
_playerProjectiles[y].die();
break;
}
}
}
}
for (var y in _players)
{
for (var x in _enemies)
{
if (_players[y].isCollide(_enemies[x]))
{
_enemies[x].health -= 1000;
if (_players[y].invincible <= 0)
_players[y].health -= 1000;
}
}
for (var x in _enemyProjectiles)
{
if (_players[y].isCollide(_enemyProjectiles[x]))
{
if (_players[y].invincible <= 0)
{
if (_players[y].health > 0)
{
_players[y].health -= _enemyProjectiles[x].health;
_enemyProjectiles[x].die();
}
}
}
}
for (var x in _objects)
if (_players[y].isCollide(_objects[x]))
if (_players[y].invincible <= 0)
_objects[x]._aiName(_objects[x], "hit", _players[y]);
_players[y].specialDuration -= 10;
if (_players[y].specialDuration <= 0)
{
_players[y].attack = playerAttackNormal;
_players[y].specialDuration = 1000;
}
_players[y].update(dt);
}
for (var x in _playerProjectiles)
{
_playerProjectiles[x].update(dt);
}
for (var x in _enemyProjectiles)
{
_enemyProjectiles[x].update(dt);
}
for (var x in _enemies)
{
_enemies[x].update(dt);
}
for (var x in _objects)
{
_objects[x].update(dt);
}
}
}