Files
Docker-404-games/404_games/pacman/js/update.js
2024-01-13 18:20:27 +01:00

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;
}