Sobre el código del Pacman creado en clase vamos a hacer un par de añadidos: keyUp
y keyDown
para que Pacman se desplace por el eje de las Y y pintaremos un laberinto como imagen de fondo del canvas.
¡It´s Kata-Time!
En esta misma carpeta encontrarás el PACMAN realizado en clase. No obstante aún no es capaz de detectar las teclas keyUp
y keyDown
. Al pulsarlas, PACMAN debe dejar de desplazarse por el eje de las X y empezar a desplazarse por el eje de las Y de manera automática. No olvides revisar su direction
para que la boca vaya siempre hacia el lado correcto del movimiento.
Una vez completado el ejercicio anterior, añade un nuevo actor a tu juego: el mapa. Sigue la información definida en la variable pacmanMap
de la class Map {(...)}
y pinta un laberinto en el fondo de tu canvas.
Use the class MAP define in actor´s folder, loop through let pacmanMap
and draw separete elements with:
-
ctx.fillStyle();
-
ctx.fillRect();
-
ctx.strokeStyle();
-
ctx.strokeRect();
-
ctx.beginPath();
-
ctx.arc();
-
ctx.fill();
¡Recuerda! El laberinto se comportará como una imagen de fondo: por ahora, tus pacman no interactuarán con ella. Observa el resultado esperado en la siguiente imagen:
Puedes hacer copy&paste del código de tus KATAS en el siguiente espacio y completar el resto de ejercicios en sus respectivos archivos. Después, haznos una pullrequest al repositorio de CORE.
function zero(operand) {
if (operand) {
return eval('~~(' + 0 + operand + ')');
} else {
return 0;
};
};
function one(operand) {
if (operand) {
return eval('~~(' + 1 + operand + ')');
} else {
return 1;
};
};
function two(operand) {
if (operand) {
return eval('~~(' + 2 + operand + ')');
} else {
return 2;
};
};
function three(operand) {
if (operand) {
return eval('~~(' + 3 + operand + ')');
} else {
return 3;
};
};
function four(operand) {
if (operand) {
return eval('~~(' + 4 + operand + ')');
} else {
return 4;
};
};
function five(operand) {
if (operand) {
return eval('~~(' + 5 + operand + ')');
} else {
return 5;
};
};
function six(operand) {
if (operand) {
return eval('~~(' + 6 + operand + ')');
} else {
return 6;
};
};
function seven(operand) {
if (operand) {
return eval('~~(' + 7 + operand + ')');
} else {
return 7;
};
};
function eight(operand) {
if (operand) {
return eval('~~(' + 8 + operand + ')');
} else {
return 8;
};
};
function nine(operand) {
if (operand) {
return eval('~~(' + 9 + operand + ')');
} else {
return 9;
};
};
function plus(number) {
return '+' + number;
};
function minus(number) {
return '-' + number;
};
function times(number) {
return '*' + number;
};
function dividedBy(number) {
return '/' + number;
};
function isValidWalk(walk) {
if (walk.length !== 10) {
return false;
};
let position = {x: 0, y: 0};
walk.forEach(letter => {
switch (letter) {
case 'n':
position.y += 1;
break;
case 's':
position.y -= 1;
break;
case 'w':
position.x -= 1;
break;
case 'e':
position.x += 1;
break;
default:
console.log('bad direction = ' + letter);
break;
};
});
if (position.x === 0 && position.y === 0) {
return true;
};
return false;
};