App8: Lanza Penalties

 

    Para empezar, debes dirigirte a la App4: Botar pelota, en el menú de la izquierda. Allí podrás ver como se hizo la primera parte. Si quieres partir de lo ya realizado en la App4, basta con seguir estos pasos:

    PRIMERA PARTE: Establecer un punto de control. 

    Aquí vamos a hacer una copia exacta de la App4, para ello:

    1. Abrimos la App4.

    2. Nos vamos al menú Proyectos --> Punto de control.

    3. Cambiamos el nombre por Lanza_penaltis. Ahora ya tenemos un punto de partida y se nos guardará todo lo que ya tenía la App4.

    SEGUNDA PARTE: Interfaz

    Tenemos que revisar las propiedades del la app copiada, así que habrá que revisarlas: 

    - icono: portería-roja.png    

    - orientación: Vertical

    - Título: Lanza penaltis.

    1. En la parte superior, vamos a colocar una disposición "tabular", donde las filas equivalen a registros: Registros: 1 - Columnas: 6

    2. Ahora vamos colocando hasta seis etiquetas: 

        

    3. En la parte inferior del lienzo, vamos a colocar:

    - Una disposición horizontal y dentro dos botones con el texto: Jugar y Salir, tal como se puede ver en la imagen de arriba. Hay que ponerle a cada botón sus nombres correspondientes: btnSalir y btnJugar.

    

    4. Ahora vamos con los sprites:

    Sprite pelota: sprPelota - de tamaño: alto: 16 - ancho: 16 y lo colocamos en la portería de abajo.

    - Arrastramos dos srpites más:

    sprPorteria y le colocamos su imagen. Tamaño automático.

    sprPortero y le colocamos su imagen. Tamaño: alto: 50 y ancho: 19

    Con esto ya tenemos la interfaz y ahora toca empezar a programar el juego!!

    TERCERA PARTE: Bloques (Procedimientos)

    ¿Qué es un procedimiento? 

    Normalmente suele haber un grupo de instrucciones que se suele repetir y se pueden crear agrupaciones de forma que cuando sea necesario, se pueda llamar a este tipo de instrucciones. Con ello nos ahorraremos repetir bloques y alargar enormemente la programación.

    En este juego, vamos a repetir varias veces unos procedimientos como:

    - Apuntar gol

    - Apuntar disparos

    - Apuntar fallos

    - Reiniciar marcadores

    - Llevar la pelota al punto de partida

    Para ello, vamos a los bloques morados "procedimientos" y vamos a crear el primero:

    - Apuntar disparos:

    

    - Apunta gol:

        

        

    - Apunta fallo:

    

    

        

        

    - Reinicia marcadores:

    

        

     - Llevar la pelota al punto inicial

    

        

   

    Por último, nos queda programar los dos botones:

    - Botón Salir:

                - Botón Jugar:

    

            

    CUARTA PARTE: Bloques II (Lanzado y tocar borde)

    Ahora llegado este punto, nos encontramos con dos posibilidades: 

    

    1. Que hayas partido de la aplicación "Lanzar pelota" 

    2. Que la estés haciendo desde cero.

    Si estás en el primer caso, hay que hacer algunas pequeñas modificaciones y si tienes el segundo caso, es decir, que la estás haciendo desde cero, tendrás que partir de los siguientes bloques:

    

        

    Ahora tendremos que considerar varias situaciones:

    1. ¿Qué ocurre si la pelota toca uno de los bordes de la pantalla? ¿Rebotará? Vamos a considerar que si la pelota toca cualquier borde que no sea el superior, la pelota va a seguir rebotando. En el caso de que toque la pelota el borde detrás de la portería, será un fallo y la pelota habrá que colocarla de nuevo en su lugar. 

    2. En cuanto al bloque de la pelota "lanzado", vamos a empezar a hacer cambios:

    a. La velocidad, la vamos a bajar a 50.

    b. le vamos a añadir el procedimiento "apuntaDisparo" para que se vaya anotando el contador Disparos, quedando así:

    

            

            Ahora vamos a modificar el bloque "TocarBorde":

    En este caso, es algo más complicado, pero debemos tener en cuenta cómo se numeran los bordes y esquinas de la pantalla:

        

                

    De forma que nuestro bloque, quedaría modificado de esta forma:

        

            

    

    CUARTA PARTE: Bloques III (Colisiones)

    Cuando dos sprites se tocan, se le conoce con el nombre de "colisión". Vamos a ver qué colisiones se nos van a producir:

    1. Pelota-portería: va a existir un gol cuando la pelota toca la portería.

    2. Pelota-Portero: cuando el portero toca la pelota y NO ha tocado la portería, será un gol.

    

           

        QUINTA PARTE: Interfaz II (Reloj)

    Tal como lo tenemos hasta ahora, el juego es muy fácil, pues al estar el portero inmóvil solo habría que apuntar bien para meter gol. Pero entonces no sería un juego normal; lo ideal es que el portero se estuviera moviendo continuamente de un lado hacia otro de la portería. Para ello, nos vamos a la vista de Diseñador y en el menú Paleta, vamos a ir a la categoría de Sensores y vamos a arrastrar el Reloj hacia nuestro visor, quedando como un elemento oculto y aparecerá abajo en la pantalla.

        

         

    En nuestro reloj, veremos sus propiedades y nos fijaremos que por defecto, nos aparecen marcadas dos casillas y un intervalo de 1000 ms (mili segundos). Lo que significa es que cada segundo (1000ms) algo va a ocurrir. Ese es su significado, ahora toca programarlo.

        SEXTA PARTE: Bloques IV (Movimiento)

    Empezamos definiendo una variable global, de forma que es la que nos va a definir el número de píxeles que se va a mover el portero. Mediante esta variable podemos ajustar la velocidad con que se mueva el portero, con los parámetros que se muestran:

   

        

    Después nos vamos a fijar en el sensor Reloj1 y el programa será el siguiente:

    

        

    Fíjate  que hemos vuelto a utilizar un procedimiento.

    Ahora toca probar la app y depurarla un poco, porque nos aparecerán estos fallos:

    1. La pelota está todo el rato de izquierda a derecha hasta que se detiene. Solución: En la vista de diseño, hay que cambiar la velocidad de la pelota a 0 (por defecto pone 100)

    2. La pelota aparece un poco más arriba del punto deseado. Solución: Añadimos un bloque más:

    

        

    3. El portero se mueve bruscamente. Solución: Nos vamos a la vista de Diseño y seleccionamos el elemento Reloj1 y ponemos el intervalo del temporizador en 100 (antes era 1000) También podemos jugar con el parámetro "inicializar global avancePortero" y cambiar su valor y subirlo de 5, que es el valor que le hemos puesto por defecto.

    4. Si ocurre que se anotan goles a la vez de fallos. Solución: alejar un poco el portero de la portería.

    POSIBLES MEJORAS:

    Podíamos añadirle un par de sonidos, de forma que al meter gol se oiga: gooooll!!!! y si falla, se oiga uuuuuhhhhh!!! que podemos buscarlos por internet o grabarlos nosotros mismos con el móvil.

¿Te atreves?