15. Saltar árboles

En esta práctica vamos a programar un juego parecido al juego del dinosaurio que aparece en el navegador Chrome cuando no hay conexión a Internet. Un dinosaurio correrá todo el tiempo hacia la derecha de la pantalla mientras aparecen árboles que tendrá que saltar para no chocarse con ellos.

_images/scratch3-p15-screen.png


  1. Iniciamos el editor de Scratch.


  2. Pulsamos el botón idioma boton-idioma en la barra superior y elegimos Español.


  3. Borramos el objeto gato presionando sobre el icono del cubo de basura.

    borrar-gato


  4. A continuación añadimos un nuevo personaje, un dinosaurio.

    Pulsamos el botón elige un objeto seleccionar-objeto.

    Buscamos en la sección Animales.

    y seleccionamos el objeto Dinosaur4.

    _images/scratch3-p15-dinosaur4.png


  5. Ahora crearemos la variable velocidad que va a almacenar la velocidad de salto del dinosaurio. Al comienzo del salto esta velocidad será positiva, pero irá decreciendo hasta hacerse negativa cuando el dinosaurio caiga hacia el suelo.

    Pulsamos el botón de variables boton-variables,

    pulsamos en crear una variable boton-crear-variable.

    Cambiamos el nombre de la variable a velocidad

    _images/scratch3-crear-variable-velocidad.png

    Por último pulsamos el botón Aceptar


  6. Ahora crearemos la variable puntos que va a almacenar los puntos que obtenemos durante el juego.

    Pulsamos el botón de variables boton-variables,

    pulsamos en crear una variable boton-crear-variable.

    Cambiamos el nombre de la variable a puntos

    _images/scratch3-crear-variable-puntos.png

    Por último pulsamos el botón Aceptar


  7. Creamos tres bloques distintos Iniciar, Saltar y Finalizar que programaremos más adelante.

  8. Ahora ya podemos crear nuestro primer programa del dinosaurio. Al comenzar el programa iniciará las variables y posiciones, después de esperar un segundo enviará a todos los objetos la orden de jugar y por siempre se encargará de hacer saltar al dinosaurio y de comprobar si el programa ha finalizado.

    En este tipo de programación Top-Down primero definimos esta rutina principal y después detallaremos cada una de las subrutinas secundarias.

    _images/scratch3-p15-dinosaur-1.png


  9. Para continuar, definimos las órdenes del bloque Iniciar. Este bloque va a borrar la pantalla, situará al dinosaurio en su posición de inicio, le mostrará el tamaño y disfraz adecuado. También establecerá los valores iniciales de las variables y su visualización en pantalla.

    Recuerda pulsar en el botón de añadir extensión aniadir-extension y elegir la extensión Lápiz para poder utilizar las instrucciones verdes como Borrar todo.

    _images/scratch3-p15-dinosaur-2.png


  10. También programaremos el bloque Saltar. Este bloque calcula la velocidad del salto cuando el dinosaurio se encuentra por encima del suelo, de manera que suba con una velocidad cada vez menor hasta que comienza a caer otra vez hacia el suelo. Este programa simula la fuerza de la gravedad y la dinámica de un salto real.

    Una vez en el suelo (posición y < -32), el dinosaurio volverá a tener velocidad cero.

    Cuando pulsemos las teclas espacio o flecha hacia arriba, el dinosaurio volverá a saltar hacia arriba con una velocidad inicial de 10.

    _images/scratch3-p15-dinosaur-3.png


  11. El bloque Finalizar se encarga de comprobar que el dinosaurio ha chocado con un árbol. En ese caso se copia en pantalla una imagen del dinosaurio con la boca abierta, que no se mueva. Envía el mensaje Muere a todos los demás objetos y finaliza el programa.

    _images/scratch3-p15-dinosaur-4.png


  12. Para continuar, programaremos el comportamiento del marcador de puntos al comenzar el juego. Este marcador debe sumar puntos continuamente hasta que el juego termine.

    _images/scratch3-p15-dinosaur-5.png


  13. Para conseguir un movimiento más realista, desde el momento en el que comience el juego vamos a cambiar el disfraz del dinosaurio continuamente para que parezca que está corriendo.

    _images/scratch3-p15-dinosaur-6.png


  14. Pulsamos la bandera verde bandera-verde para probar el funcionamiento del programa.

    El dinosaurio correrá manteniéndose en una posición fija de la pantalla. Cuando pulsemos la tecla espacio o flecha arriba, el dinosaurio deberá dar un salto hacia arriba y volver a caer.


  15. Ahora vamos a añadir un suelo al juego. Debemos pulsar en la opción de pintar un objeto para que aparezca un nuevo objeto en el juego.

    _images/scratch3-p15-pinta-objeto.png

    En la pestaña de disfraces dibujamos una línea con relleno gris y brillo 50, con borde gris 50 y con grosor 6.

    _images/scratch3-p15-suelo-3.png _images/scratch3-p15-suelo-2.png

    La línea debe sobresalir por ambos lados de la pantalla para estar seguros de que cubrirá todo el ancho de pantalla al mostrarse.


  16. Ya podemos cambiar a la pestaña de código para realizar el programa, que será muy sencillo. Solo mostrará la línea en la posición adecuada.

    _images/scratch3-p15-suelo-1.png


  17. Terminado el suelo, vamos a añadir los árboles al juego. Añadimos un nuevo personaje, Trees.

    Pulsamos el botón elige un objeto seleccionar-objeto.

    Buscamos en la sección Todos.

    y seleccionamos el objeto Trees.

    _images/scratch3-p15-trees.png


  18. En la pestaña de disfraces borraremos el arbol llamado Trees-b. A continuación duplicaremos el árbol llamado Trees-a pinchando con el botón derecho del ratón sobre su imagen.

    Una vez duplicado aparecerá otra imagen llamada Trees-a2 que vamos a modificar para que contenga dos árboles.

    Con la herramienta selección boton-seleccion seleccionamos todo el árbol y lo duplicamos con el botón de copiar y con el botón de pegar.

    _images/scratch3-p15-copiar-pegar.png

    Para terminar, movemos el árbol recién copiado para que se sitúe al lado del primer árbol.

    _images/scratch3-p15-arboles-6.png


  19. Realizamos la misma operación que en el punto anterior duplicando el disfraz del árbol y duplicando dos veces el árbol inicial para que tengamos esta vez un disfraz con tres árboles en total.

    _images/scratch3-p15-arboles-7.png


  20. Una vez terminados los disfraces de los árboles, vamos a completar el código del programa. Comenzamos por el inicio que borra todo, coloca los árboles a la derecha de la pantalla con el tamaño al 20% y escondidos de la vista.

    _images/scratch3-p15-arboles-1.png


  21. Al recibir el mensaje de Jugar, el código comenzará a crear clones de los árboles con un disfraz aleatorio. Entre un clon y otro esperaremos un tiempo aleatorio entre 1.5 y 3.5 segundos.

    _images/scratch3-p15-arboles-2.png


  22. Cada vez que comience como clon un árbol, se debe mostrar en pantalla y esperar hasta que toque el borde izquierdo. En ese momento aplicaremos un efecto de desvanecimiento y eliminamos el clon.

    _images/scratch3-p15-arboles-3.png


  23. Para que los árboles se muevan a la izquierda, dando la sensación de que el dinosaurio corre hacia la derecha, hay que añadir el siguiente código que mueve el árbol para cada clon.

    _images/scratch3-p15-arboles-4.png


  24. Para terminar con este código, al recibir el mensaje de que el dinosaurio Muere, debemos sellar los clones en la pantalla y eliminarlos.

    _images/scratch3-p15-arboles-5.png


  25. Solo nos queda la tarea de añadir un mensaje de "Game Over" cuando el juego termina. Volvemos a pulsar sobre la opción de pintar un objeto.

    _images/scratch3-p15-pinta-objeto.png

    Escribimos el mensaje Game Over con la herramienta Texto, Rellenar en color negro y el tipo de letra Pixel.

    _images/scratch3-p15-game-over-2.png _images/scratch3-p15-game-over-3.png


  26. Ahora solo queda completar el código que esconda el mensaje hasta que termine el programa, momento en el que debe mostrarse.

    _images/scratch3-p15-game-over-1.png


  27. Pulsamos la bandera verde bandera-verde para probar el funcionamiento del programa.



Retos

  1. Aumenta la aceleración en el salto para hacer el juego más difícil. Para conseguirlo, resta a la velocidad, en el bloque Saltar, un número mayor. Prueba con varios valores hasta que encuentres uno que funcione, pero haga más difícil el juego.


  2. Añade un movimiento de giro en cada salto del personaje.


  3. Cuando los puntos tengan un valor superior a 1000, aumenta la dificultad del juego haciendo que aparezcan árboles con más frecuencia (cada menos tiempo).