//Objetos Importantes del Canvas.
var canvas,contexto;
//Crear Objetos para el Juego.
var jugadores = [];
var pasillos = {
x1: 140, y1: 230, width1: 37, height1: 42,
x2: 161, y2: 252, width2: 53, height2: 26,
x3: 216, y3: 252, width3: 36, height3: 26,
x4: 254, y4: 252, width4: 36, height4: 26,
x5: 292, y5: 252, width5: 36, height5: 26
// son 52 pasillos (esto xq no vi otra manera de dibujarlos ya que cada una tiene valores diferentes)
};
var juego = {
estado: 'iniciando',
cantidad: 2
};
var teclado = {};
//Definir variables para las imagenes.
var fondo, imgExclamacion, imgInterrogacion, imgBoton;
var imgPasillo = [];
var imgFichas = [];
var imagenes = ['Imagenes/boton.png','Imagenes/1.png','Imagenes/2.png','Imagenes/3.png','Imagenes/4.png','Imagenes/5.png','Imagenes/6.png','Imagenes/7.png',
'Imagenes/8.png','Imagenes/9.png','Imagenes/10.png','Imagenes/11.png','Imagenes/12.png','Imagenes/13.png','Imagenes/14.png','Imagenes/15.png',
'Imagenes/16.png','Imagenes/17.png','Imagenes/18.png','Imagenes/19.png','Imagenes/20.png','Imagenes/21.png','Imagenes/22.png','Imagenes/23.png',
'Imagenes/24.png','Imagenes/25.png','Imagenes/26.png','Imagenes/27.png','Imagenes/28.png','Imagenes/29.png','Imagenes/30.png','Imagenes/31.png',
'Imagenes/32.png','Imagenes/33.png','Imagenes/34.png','Imagenes/35.png','Imagenes/36.png','Imagenes/37.png','Imagenes/38.png','Imagenes/39.png',
'Imagenes/40.png','Imagenes/41.png','Imagenes/42.png','Imagenes/43.png','Imagenes/44.png','Imagenes/45.png','Imagenes/46.png','Imagenes/47.png',
'Imagenes/48.png','Imagenes/49.png','Imagenes/50.png','Imagenes/51.png','Imagenes/52.png','Imagenes/53.png','Imagenes/54.png','Imagenes/55.png',
'Imagenes/exclamacion.png','Imagenes/interrogacion.png','Imagenes/ficha1.png','Imagenes/ficha2.png','Imagenes/ficha3.png',
'Imagenes/ficha4.png','Imagenes/ficha5.png','Imagenes/ficha6.png','Imagenes/Fondo.png'];
var preloader;
//Definición de funciones
function loadMedia(){
canvas = document.getElementById('game');
$('#game').css({
'top':($('html').height()-canvas.height)+'px',
'left':($('html').width()-canvas.width)+'px'
});
$('#porcentaje').css({
'top':($('html').height()-$('#porcentaje').height())+'px',
'left':($('html').width()-$('#porcentaje').width())+'px'
});
preloader = new PreloadJS();
preloader.onProgress = progresoCarga;
prepararCanvas();
}
function prepararCanvas(){
contexto = canvas.getContext('2d');
var radio = 98;
var posX = radio + 2;
var posY = radio + 2;
contexto.arc(posX,posY,radio,0,2*Math.PI,false);
contexto.strokeStyle = 'gray';
contexto.lineWidth = 4;
contexto.stroke();
cargar();
}
function cargar(){
while(imagenes.length > 0){
var imagen = imagenes.shift();
preloader.loadFile(imagen);
}
}
function progresoCarga(){
contexto = canvas.getContext('2d');
contexto.beginPath();
var radio = 98;
var posX = radio + 2;
var posY = radio + 2;
var endAngle = (preloader.progress*(2*Math.PI));
contexto.arc(posX,posY,radio,0,endAngle,false);
contexto.strokeStyle = 'black';
contexto.lineWidth = 4;
contexto.stroke();
var progresoEntero = parseInt(preloader.progress*100);
$('#porcentaje').text(progresoEntero+'%');
if(preloader.progress == 1){
$('#preloader').remove();
var intervalo = window.setInterval(frameLoop,1000/40);
fondo = new Image();
fondo.src = 'Imagenes/Fondo.png';
imgExclamacion = new Image();
imgExclamacion.src = 'Imagenes/exclamacion.png';
imgInterrogacion = new Image();
imgInterrogacion.src = 'Imagenes/interrogacion.png';
imgBoton = new Image();
imgBoton.src = 'Imagenes/boton.png';
for(var i = 1; i <= 55; i++){
imgPasillo[i] = new Image();
imgPasillo[i].src = 'Imagenes/'+i+'.png';
}
for(var i = 1; i <= 6; i++){
imgFichas[i] = new Image();
imgFichas[i].src = 'Imagenes/ficha'+i+'.png';
}
/*Sonido = document.createElement('audio'); asi se definen los sonidos
document.body.appendChild(Sonido);
Sonido.setAtribute('src','rutasonido');*/
}
}
function agregarEventosTeclado(){
//Ponemos en true la tecla presionada
agregarEvento(document,"keydown",function(e){
teclado[e.keyCode] = true;
console.log(e.keyCode);
});
//Ponemos en false la tecla que dejó de ser presionada
agregarEvento(document,"keyup",function(e){
teclado[e.keyCode] = false;
});
function agregarEvento(elemento,evento,funcion){
if(elemento.addEventListener){
//Navegadores que soportan funcion addEventListener
elemento.addEventListener(evento,funcion,false);
}
else if(elemento.attachEvent){
//Internet Explorer
elemento.attachEvent(evento,funcion);
}
}
}
function dibujarFondo(){
contexto = canvas.getContext('2d');
contexto.drawImage(fondo,0,0,944,651);
}
function dibujarExclamacion(){
contexto = canvas.getContext('2d');
contexto.drawImage(imgExclamacion,786,349,144,94);
}
function dibujarInterrogacion(){
contexto = canvas.getContext('2d');
contexto.drawImage(imgInterrogacion,212,359,144,94);
}
function dibujarPasillos(){
contexto = canvas.getContext('2d');
contexto.save();
for(var i=1;i<=55;i++){
contexto.drawImage(imgPasillo[i],pasillos['x'+i],pasillos['y'+i],pasillos['width'+i],pasillos['height'+i]);
}
contexto.restore();
}
function dibujarJugadores(){
contexto = canvas.getContext('2d');
for(var i in jugadores){
var jugador = jugadores[i];
contexto.save();
contexto.drawImage(imgFichas[1],jugador.x+139,jugador.y+426,jugador.width,jugador.height); //ficha amarilla
contexto.drawImage(imgFichas[2],jugador.x+139,jugador.y+377,jugador.width,jugador.height); //ficha azul
contexto.drawImage(imgFichas[3],jugador.x+54,jugador.y+328,jugador.width,jugador.height); //ficha blanca
contexto.drawImage(imgFichas[4],jugador.x+139,jugador.y+328,jugador.width,jugador.height); //ficha negra
contexto.drawImage(imgFichas[5],jugador.x+54,jugador.y+426,jugador.width,jugador.height); //ficha roja
contexto.drawImage(imgFichas[6],jugador.x+54,jugador.y+377,jugador.width,jugador.height); //ficha verde
contexto.restore();
}
}
function actualizarJugadores(){
if(juego.estado == 'iniciando'){
for(var i = 1;i<=6;i++){
jugadores.push({
contador: 0,
estado: 'inactivo',
turno: 0,
x: 0,
y: 0,
width: 30,
height: 30
})
}
juego.estado = 'jugando';
}
}
function actualizarEstadoJuego(){
contexto = canvas.getContext('2d');
if(juego.estado == 'jugando' && juego.cantidad>=2){
for(var i=1;i<=juego.cantidad;i++){
contexto.save();
contexto.drawImage(imgFichas[i],jugadores[i].x+pasillos.x1,jugadores[i].y+pasillos.y1,jugadores[i].width,jugadores[i].height);
contexto.restore();
}
}
}
function dibujarBoton(){
contexto = canvas.getContext('2d');
contexto.save();
contexto.shadowOffsetX = 5;
contexto.shadowOffsetY = 5;
contexto.shadowBlur = 5;
contexto.shadowColor = "black";
contexto.drawImage(imgBoton,810,500,100,100);
contexto.restore();
}
function frameLoop(){
dibujarFondo();
dibujarInterrogacion();
dibujarExclamacion();
dibujarPasillos();
dibujarJugadores();
dibujarBoton();
actualizarJugadores();
actualizarEstadoJuego();
}
//Ejecución de funciones
$(document).on("ready",init);
function init(){
loadMedia();
}