Programación Informática ASIGNATURA: PROGRAMACION I PREPARADA Y COMPILADA POR DECADE ISGMMG UNIDAD 6 TP 6 Recopiló y Organizó DECADE ISGMMG Gral. M.M. De Güemes TRABAJO PRACTICO 6 DESARROLLE EL CODIGO DEL EJEMPLO EJEMPLO: JUEGO DE FRONTON Esta página completa la "trilogía" de ejemplos (ejemplos 12, 13 y 14) en los que intervienen movimientos de vocales. En este caso, al movimiento de las vocales tipo billar visto en el ejercicio anterior, le vamos a añadir la posibilidad de que existan rebotes sobre una "raqueta". La "raqueta" esta definida como un botón que se mueve horizontalmente utilizando las teclas adyacentes m y n. EI objetivo es hacer que las vocales "reboten" contra la "raqueta", evitando que lleguen a la parte inferior de Ia ventana del explorador. La función lnicializar() se ejecuta cuando se carga (o actualiza) la pagina. Para controlar el movimiento de Ia raqueta se utiliza el evento onkeypress asociado al <BODY>. <BODY id=”Cuerpo” onload=”Inicializar()” onkeypress=”MoverRaquet()”> La función inicializar() define las trayectorias de las vocales (tal y como se explico en el ejemplo anterior), mantiene las vocales ocultas hasta que comience el juego, indica que cada vocal existe para el jugador (todavía no se ha escapado por la parte inferior de la ventana), define el numero de "Vidas" como el de elementos que rebotan (en nuestro caso las 5 vocales), y por ultimo, sitúa la "raqueta" para que comience el juego. También resulta importante echar un vistazo a la definición de variables que utiliza la página Web: 1 EI usuario puede seleccionar el nivel de dificultad del juego utilizando una caja de texto. La cancelación del burbujeo de sucesos evita que la pulsación de una tecla se interprete (por parte del <BODY» como un movimiento de "raqueta". EI valor (value) del campo de texto Dificultad nos permitirá variar la frecuencia de activación de la función MoverLetra(), que mueve las vocales. Cuando el usuario decide comenzar el juego, pulsa un botón preparado a tal efecto y provoca la ejecución de la función Comienzo(). La función Comienzo() hace visibles las vocales e invisibles los elementos de configuraci6n e inicializaci6n del juego. También invoca a la función MoverLetra() para que las vocales inicien sus movimientos. La funciónn MoverRaqueta() se ejecuta cuando se pulsa una tecla en cualquier parte de la pagina (salvo en la caja de texto Dificultad). En primer lugar utilizamos Tecla=window.event.keyCode para conocer la tecla pulsada. Después se analiza Tecla. En caso de que su c6digo (ASCII) se corresponda con m, entonces definimos un Incremento (desplazamiento de "raqueta") positivo. En el caso de que su c6digo se corresponda con n, entonces se define un desplazamiento negativo. Después se pregunta por la posición horizontal de la raqueta (la posición vertical nunca varia) y se analiza si se puede salir de la ventana del explorador por la izquierda 0 la derecha. Si no se sale, se permite el movimiento actualizando su posición horizontal (Raqueta. style.posLeft + = Incremento). 2 Por ultimo, en la funciónn MoverLetra(), la parte original de este ejemplo es la instrucción if, que comprueba si cada vocal analizada debe rebotar 0 darse por "perdida". La condición de la instrucción if comprueba: • Que la vocal sigue "viva", es decir, que no ha traspasado nunca la posición vertical de la raqueta (QuedanVidas[i]==1). • Que la vocal ha llegado ala posici6n vertical de la raqueta. • Que la vocal se encuentra a la izquierda 0 a la derecha de la raqueta (es decir, que el usuario no ha podido llegar a la vocal). Cuando se cumplen las condiciones anteriores se decremento el numero de vidas (NumVidas), se indica que esa vocal ya no esta "en uso" (QuedanVidas[i]=0), se hace desaparecer ("hidden") la vocal y se actualiza el marcador de "Vidas" que el usuario puede ver. 3