<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Yasminuroban © (by Joan Alba Maldonado)</title> <!-- (c) Yasminuroban - Programa realizado por Joan Alba Maldonado (granvino@granvino.com). Prohibido publicar, reproducir o modificar sin citar expresamente al autor original. --> <script language="JavaScript1.2" type="text/javascript"> <!-- //(c) Yasminuroban - Programa realizado por Joan Alba Maldonado (granvino@granvino.com). Prohibido publicar, reproducir o modificar sin citar expresamente al autor original.
//Variable que guarda el primer evento del teclado (razones de compatibilidad): var primer_evento = ""; //Matriz que contendra los niveles: var niveles = new Array(); //El ancho de las celdas: var celda_width = 40; //El alto de las celdas: var celda_height = 40; //El numero de piezas que deben ser colocadas: var numero_piezas_totales = 0; //El contador de piezas ya colocadas: var numero_piezas_colocadas = 0;
//El numero de nivel: var nivel = 1; //El numero de niveles que hay en total (se calcula en generar_niveles): var numero_niveles = 0; //Matriz que guarda los movimientos efectuados: var movimientos_anteriores = new Array(); //Variable que define que numero de movimientos se han realizado: var numero_movimientos = 0; //Variable que muestra el numero de movimientos realizados: var numero_movimientos_mostrar = numero_movimientos; //Variable que contendra el Timeout del movimiento del personaje: var movimiento_personaje = setTimeout("", 1); //Se setea para que no de error el primer clearTimeout. //Variable que indica si ya se ha comprobado el envio de un mapa por url (GET), para usar niveles del editor: var mapa_url_recogido = false;
//Variable que guarda la url que enlaza con el editor (para editar el nivel actual): var url_editor = "editor.htm"; //Funcion para saber si ya se ha saludado (dando instrucciones de poner todas las botellas en sus copas): var se_ha_saludado = false; //Variable que define si el juego ya se ha iniciado o no (para no dar error al pulsar una tecla mientras carga el juego): var juego_iniciado = false; //Imagenes del juego: if (document.images) { //Se crean los objetos: var img_pared1 = new Image(celda_width, celda_height); var img_pared2 = new Image(celda_width, celda_height); var img_pared3 = new Image(celda_width, celda_height); var img_pieza = new Image(celda_width, celda_height); var img_agujero_vacio = new Image(celda_width, celda_height); var img_agujero_lleno = new Image(celda_width, celda_height); var img_personaje_derecha1 = new Image(celda_width, celda_height); var img_personaje_derecha2 = new Image(celda_width, celda_height); var img_personaje_izquierda1 = new Image(celda_width, celda_height); var img_personaje_izquierda2 = new Image(celda_width, celda_height); var img_personaje_arriba1 = new Image(celda_width, celda_height); var img_personaje_arriba2 = new Image(celda_width, celda_height); var img_personaje_abajo1 = new Image(celda_width, celda_height); var img_personaje_abajo2 = new Image(celda_width, celda_height); //Se define el numero total de imagenes de paredes (para poder alternarlas): var numero_img_paredes = 3; //Se crean las imagenes en los objetos: img_pared1.src = "img/piedra1.gif"; //Imagen de la pared #1. img_pared2.src = "img/piedra2.gif"; //Imagen de la pared #2. img_pared3.src = "img/piedra3.gif"; //Imagen de la pared #3. img_pieza.src = "img/botella.gif"; //Imagen de la pieza. img_agujero_vacio.src = "img/copa1.gif"; //Imagen del agujero vacio. img_agujero_lleno.src = "img/copa2.gif"; //Imagen del agujero lleno. img_personaje_derecha1.src = "img/yas_right1.gif"; //Imagen del personaje hacia la derecha #1. img_personaje_derecha2.src = "img/yas_right2.gif"; //Imagen del personaje hacia la derecha #2. img_personaje_izquierda1.src = "img/yas_left1.gif"; //Imagen del personaje hacia la izquierda #1. img_personaje_izquierda2.src = "img/yas_left2.gif"; //Imagen del personaje hacia la izquierda #2. img_personaje_arriba1.src = "img/yas_up1.gif"; //Imagen del personaje hacia arriba #1. img_personaje_arriba2.src = "img/yas_up2.gif"; //Imagen del personaje hacia arriba #2. img_personaje_abajo1.src = "img/yas_down1.gif"; //Imagen del personaje hacia abajo #1. img_personaje_abajo2.src = "img/yas_down2.gif"; //Imagen del personaje hacia abajo #2. //Se crea la imagen que usara el personaje en cada momento: var imagen_personaje = new Image(celda_width, celda_height); imagen_personaje.src = img_personaje_abajo1.src; } //Funcion que inicia el juego: function iniciar_juego(numero_nivel) { //Genera los niveles: generar_niveles(); //Crea la url para ir al editor y poder editar el nivel actual: generar_url_editor(numero_nivel); //Se pone como imagen inicial del personaje la que mira hacia abajo: document.getElementById("personaje").innerHTML = '<img src="img/yas_down1.gif" id="personaje_imagen" title="You are here" alt="@" width="'+celda_width+'" height="'+celda_height+'" border="0" hspace="0" vspace="0">'; //Se borran los movimientos anteriores y se setea el contador de movimientos a cero: movimientos_anteriores = new Array(); numero_movimientos = 0; numero_movimientos_mostrar = numero_movimientos;
//Se setea el nivel a 1 o al que corresponda: nivel = numero_nivel;
//Se adecua el tama??las celdas al tama?? mapa: if (niveles[nivel]["width"] > 48 || niveles[nivel]["height"] > 30) { celda_width = 10; celda_height = 10; } else if (niveles[nivel]["width"] > 32 || niveles[nivel]["height"] > 24) { celda_width = 15; celda_height = 15; } else if (niveles[nivel]["width"] > 26 || niveles[nivel]["height"] > 18) { celda_width = 20; celda_height = 20; } else if (niveles[nivel]["width"] > 20 || niveles[nivel]["height"] > 12) { celda_width = 30; celda_height = 30; } else { celda_width = 40; celda_height = 40; } //Se aplican los cambios de tama?? document.getElementById("personaje").style.width = celda_width + "px"; document.getElementById("personaje").style.height = celda_height + "px"; document.getElementById("personaje").innerHTML = '<img src="img/yas_down1.gif" id="personaje_imagen" title="You are here" alt="@" width="'+celda_width+'" height="'+celda_height+'" border="0" hspace="0" vspace="0">';
//Se setea el numero de piezas colocadas a cero: numero_piezas_colocadas = 0;
//Muestra el mapa en pantalla: pintar_mapa(true);
//Guarda el mapa anterior, para poder realizar deshacer: guardar_mapa();
//Actualiza la barra de estado: actualizar_barra();
//Se informa del nivel en el mensaje: document.getElementById("mensaje").innerHTML = "Welcome to Level: "+nivel; //Se hace visible el mensaje: document.getElementById("mensaje").style.visibility = "visible"; //Se oculta el mensaje despues de 3 segundos: setTimeout("document.getElementById('mensaje').style.visibility='hidden'", 3000);
//Si el nivel es el primero y aun no se ha saludado, dando instrucciones, se hace: if (nivel <= 1 && !se_ha_saludado) { alert("Welcome to the first level. Place all the bottles in the glasses."); se_ha_saludado = true; } }
//Funcion que genera los niveles: function generar_niveles() { //Leyenda: // => Vacio. // # => Pared (piedra). // @ => Posicion inicial del personaje (yasmina). // $ => Pieza (botella). //
Download : nav_yasminuroban_english.zip |