Foros del Web » Programando para Internet » Javascript »

Duda con evento mousedown en js y canvas

Estas en el tema de Duda con evento mousedown en js y canvas en el foro de Javascript en Foros del Web. Hola amigos de FDW, disculpen si aquí no era el foro indicado donde realizar mi pregunta pero como el trabajo se realiza directamente con js ...
  #1 (permalink)  
Antiguo 14/02/2013, 15:58
Avatar de jlct  
Fecha de Ingreso: abril-2012
Ubicación: Venezuela
Mensajes: 148
Antigüedad: 12 años, 1 mes
Puntos: 19
Duda con evento mousedown en js y canvas

Hola amigos de FDW, disculpen si aquí no era el foro indicado donde realizar mi pregunta pero como el trabajo se realiza directamente con js por eso decidí hacerlo aquí.

Resulta que estoy iniciandome en el mundo de js y canvas ya que quiero desarrollar un juego de mesa algo sencillo. pero me trabe en lo siguiente:

- tengo dibujado un botón y quiero que cuando se le de un clic llame a una función para lanzar una serie de imagenes aleatorias (unos dados), para luego capturar el valor que retorne.

Código:
//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();
}
aquí esta lo que llevo hasta ahora. Espero me puedan ayudar

Etiquetas: canvas, juego
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:43.