51 lines
1.3 KiB
JavaScript
51 lines
1.3 KiB
JavaScript
var playerSpriteTimeout ;
|
|
// Update game objects
|
|
var update = function (modifier) {
|
|
controls(modifier);
|
|
|
|
if (player.dead || isCollidingBlocks(player,player.direction)){
|
|
clearTimeout(playerSpriteTimeout);
|
|
player.isMoving = false;
|
|
} else {
|
|
if (!player.isMoving) {
|
|
player.isMoving = true;
|
|
playerSpriteTimeout = setInterval(function(){
|
|
player.sprite = (player.sprite +1) %2;
|
|
}, 250);
|
|
}
|
|
move(player, modifier);
|
|
}
|
|
updateEnemies(modifier); //AI
|
|
|
|
//Enemy collision
|
|
for (var i= 0; i < enemies.length; i++){
|
|
var enemy = enemies[i];
|
|
if (collision.collision(enemy, player, SIZE)) player.dead = true;
|
|
}
|
|
//Eating dots
|
|
for (var i= 0; i < dots.length; i++){
|
|
var dot = dots[i];
|
|
if (collision.collision(dot, player, SIZE / 2)) dots.splice(i, 1);
|
|
}
|
|
};
|
|
|
|
var move = function(obj, modifier){
|
|
|
|
obj.x = obj.x + obj.direction.x * obj.speed * modifier;
|
|
obj.y = obj.y + obj.direction.y * obj.speed * modifier;
|
|
|
|
if (obj.y < 0 ) obj.y = canvas.height;
|
|
else if (obj.y > canvas.height ) obj.y = 0 ;
|
|
}
|
|
|
|
var isCollidingBlocks = function(obj, direction, offset){
|
|
if (!offset) offset = p(0,0);
|
|
for (var i=0; i < blocks.length; i++){
|
|
var block = blocks[i];
|
|
|
|
var isColliding = collision.isCollidingDirection(block, obj, direction, offset);
|
|
if (isColliding) return true;
|
|
}
|
|
return false;
|
|
}
|