Libro



CURSO DE SCRATCH 3

En este capítulo analizaremos problemas típicos de programación, de un nivel más avanzado y los resolveremos y ampliaremos con Scratch.
La idea del curso y los archivos han sido obtenidos de www.miriadax.net, de un curso de Xnergic-TecnoCampusMataró (TCM) dirigido y presentado por Marco Antonio Rodríguez, al cual agradecemos calurosamente su esfuerzo.

Programación avanzada con Scratch

SCRATCH
Se recomienda ver todos los videos en PANTALLA COMPLETA y usar unos AURICULARES. Los videos imprescindibles para realizar el curso se marcan con una tabla con fondo Naranja. Los ejercicios aparecen en color Verde.

MÓDULO 3. PATRONES Y EJEMPLOS. PROGRAMACIÓN DE APLICACIONES Y JUEGOS.

(Pincha en los enlaces para acceder al canal de Youtube y ver los videos)
3.1 INTRODUCCIÓN
En este módulo vamos a:
  • Analizar ejemplos de programas que pueden emplearse en juegos y aplicaciones.
  • Utilizarlos para nuestros propios juegos o modificarlos para incluir mejoras o adaptarlos a nuestras necesidades.
3.2 SIMULACIÓN DE MÁQUINAS "CLICAR Y RESPONDER": EL PARQUÍMETRO
  • Observa el video y estudia el programa utilizado.
3. 2. SIMULACIÓN DE MÁQUINAS "CLICAR Y RESPONDER": EL PARQUÍMETRO (Ejercicios):
  • 3.2.A. Crea el programa del parquímetro tal como se explica en el video. Antes debes conseguir las imágenes necesarias para utilizarlas en Scratch.
  • 3.2.B. Modifica el programa del parquímetro añadiendo algunas de las siguientes mejoras, u otras que se te ocurran:
    • Que las monedas se sumen sólo cuando se  desplacen a algún lugar: una ranura, una caja... dibujadas en algún lugar de la pantalla.
    • Que el diseño de la pantalla sea distinta:
      • Cambia los rótulos por otros: Dinero, Cambiar Tiempo, Calcular cambio.
      • Los botones + y - deben aparecer bajo  el rótulo 'Cambiar Tiempo'.
      • Añade un botón junto al rótulo 'Calcular cambio'.
    • Sólo cuando toquemos el botón 'Calcular cambio', se mostrará el resultado del cambio.
    • Cambia el programa para que no se pueda aumentar sin límite el tiempo de parking, sino que esté limitado por la suma de monedas introducidas.
    • ...
3.3 DIBUJO DE FUNCIONES GRÁFICAS: "ECUACIÓN DE SEGUNDO GRADO"
  • Observa el video y realiza los ejercicios siguientes:
3. 3. DIBUJO DE FUNCIONES GRÁFICAS: "ECUACIÓN DE SEGUNDO GRADO" (Ejercicios):
  • 3.3.A. Realiza en Scratch el mismo programa del Video, que dibuje una ecuación de segundo grado, del tipo:   y = ax2 + bx + c

Cambia el programa
para incorporar algunas de las siguientes mejoras:
  • 3.3.B. Que en el fondo aparezca la expresión matemática de la ecuación que se va a representar (y = ax2 + bx + c)
  • 3.3.C.Que conforme se dibuja, vaya apareciendo una lista con los valores que se van representando.
  • 3.3.D. Que la ecuación sea otra distinta.
  • ...
3.4 CLONAR, FUNCIONES Y SPRITES.  "EL JUEGO DE LA VIDA" - DE JOHN CONWAY
  • Observa el video del programa tratando de entender en qué consiste el juego.
  • El programa nos empiezaa introducir en los conceptos de:
    • 'sprite': es cada uno de los 'personajes' que intervienen en el juego.
    • 'clon': es un duplicado de un sprite, al que se le puede dar apariencia y comportamiento distinto al sprite.
    • 'función': en este caso se refiere al comportamiento de cada  'clon' a lo largo del juego.
  • Como el programa es muy complejo, no lo vamos a reproducir. Descargaremos un programa similar desde la dirección:
3. 4. CLONAR, FUNCIONES Y SPRITES. "EL JUEGO DE LA VIDA" - DE JOHN CONWAY (Ejercicios):
  • Analiza el programa descargado y compara su funcionamiento con el del video. Como verás hay varias diferencias. Modifica el programa para que su apariencia sea similar a la del video:
    • 3.4.A. Haz que aparezcan en la pantalla las listas "Juego actual" y "Juego siguiente"
    • 3.4.B. ¿De que color se representa un clon vivo? ¿Y un clon muerto? Averígualo y cambia el programa para que se usen los colores del video.
  • Ampliación (actividades de mayor dificultad):
    • 3.4.C. Según el video, para que en el "juego siguiente" un clon esté vivo debe ocurrir:
      • Que, estando vivo en el "juego actual", tenga  2 vecinos cercanos.
      • O que, estando muerto en el "juego actual", tenga  3 vecinos cercanos.
      • ¿Es esto así en el programa que hemos descargado? Si no lo es, cámbialo para que sea como en el video.
    • 3.4.D. El mapa se borra cada vez que vamos a generar uno nuevo. ¿Podrías conseguir que no se borrara, de modo que el nuevo se vaya dibujando encima?

Otra versión.
Accede al programa original que se usa en el video:
  • 3.4.E. Mejora el programa cambiando el botón verde por otro que muestre el rótulo "SIGUIENTE"
  • 3.4.F. Ampliación: Elimina el botón "SIGUIENTE" y trata de conseguir que, transcurrido un tiempo, el juego se renueve automáticamente, mostrando un contador que indique el nivel de juego en que estamos.
3.5 SIMULANDO LA GRAVEDAD Y LOS MRUA. "JUEGOS DE PLATAFORMAS"
En este apartado aprenderemos a simular el efecto de la gravedad y el de aceleración o frenado. Los dos son Movimientos Rectilíneos Uniformemente Acelerados (M.R.U.A.), y afectan a la aceleración de un personaje u objeto. Con estos conocimientos crearemos un juego de plataformas.
3. 5. SIMULANDO LA GRAVEDAD Y LOS M.R.U.A. (Ejercicios):
  • 3.5.A. Dibuja una pantalla con plataformas y simula la gravedad como en el ejemplo.
  • 3.5.B. Simula también el efecto de aceleración y desaceleración, tal y como se ha visto en el video pero haz que el efecto se produzca hacia la derecha y hacia la izquierda.
  • 3.5.C. Añade también un movimiento de salto hacia arriba que se produzca al pulsar la tecla que elijas.
  • 3.5.D. Ampliación: Trata de cambiar el efecto de gravedad por otro que simule una caída con aceleración.
3.6 LANZAR PROYECTILES Y COLISIONES. JUEGO DE 'INVASORES DEL ESPACIO'
Este ejemplo nos va a servir para el lanzamiento de objetos. Es similar a lo que se puede ver en los juegos de "marcianos"

3. 6. LANZAR PROYETILES Y COLISIONES. JUEGO DE 'INVASORES DEL ESPACIO'. (Ejercicios):
  • 3.6.A. Crea un personaje con movimiento mediante las teclas del cursor. Al pulsar el ratón, este personaje lanzará un proyectil que desaparecerá al llegar al borde de la pantalla, como en el ejemplo.
  • 3.6.B. Dibuja ciertos elementos en la pantalla, de modo que cuando el proyectil los toque, se sumen puntos a un contador.
  • 3.6.C. Añade otros objetos al juego. Si el proyectil los toca deben desaparecer y añadirse su nombre a una lista, además de sumar puntos.
  • 3.6.D. Ampliación: Cambia los objetos por personajes con movimiento aleatorio. Si el proyectil los toca deben desaparecer y añadirse su nombre a una lista, sumando puntos. Pero si estos personajes tocan al protegonista, el juego terminará, mostrándose un mensaje de FIN.
3.7 JUEGO DE 'MOLEMASH' USANDO VIDEO Y SONIDO
Aprenderás a usar la web-cam y el micrófono para interactuar con un juego.

3. 7. JUEGO DE 'MOLEMASH' USANDO VIDEO Y SONIDO. (Ejercicios):
  • 3.7.A. Crea el mismo programa del ejemplo, de modo que, usando una web-cam, hagamos desaparecer un personaje moviendo nuestra mano tras él hagamos. El personaje aparecerá en otro lugar aleatoriamente. Si tienes un micrófono, haz que el programa se detenga mediante un sonido, mostrando un mensaje de FIN.
  • 3.7.B. Añade un contador que sume puntos cada vez que hacemos desaparecer al personaje.
  • 3.7.C. Mejora el programa mostrando un 'reloj' que vaya contando hacia atrás. Al terminar la cuenta se detendrá el programa, apareciendo un mensaje con el total de puntos conseguidos.
3.8 SCROLL HORIZONTAL
Este truco es útil para realizar juegos en los que el personaje está fijo y las pantallas van pasando por detrás

3. 8. SCROLL. (Ejercicios):
  • 3.8.A. Repite el programa del ejemplo con un personaje y 3 fondos que se van desplazando horizontalmente conforme pulsamos la tecla derecha o izquierda. El personaje debe cambiar de orientación (derecha /izquierda) pero sin moverse de la posición central.
  • 3.8.B. Mejora el programa anterior creando un fondo continuo, dividido en 3 partes, para que el personaje se mueva sobre él: Por Ej. Una carretera, una ciudad, un paisaje...
  • 3.8.C. Completa el juego añadiendo un scroll vertical. De esta forma el personaje se moverá en todas direcciones (derecha /izquierda /arriba /abajo). Tendrás que crear 9 pantallas que tengan continuidad entre sí. Puedes elegir el tema que quieras: Un circuito de carreras, un mapa, el callejero de una ciudad, un camino a través de un paisaje, un laberinto...
AMPLIACIÓN: INCLUYE VARIAS DE LAS SIGUIENTES MEJORAS:
  • 3.8.D. Ampliación: Mejora el juego haciendo que si el personaje se sale del camino, pierda puntos/vida, que se mostrará en un contador. Si se acaban los puntos, terminará el juego, mostrándose con un mensaje apropiado.
  • 3.8.E. Ampliación: Añade que, si el personaje se sale del camino, además de perder puntos, deba empezar de nuevo el recorrido.
  • 3.8.F. Ampliación: Incluye 'objetos amigos' que, al ser tocados por el personaje, desaparezcan y nos aumenten los puntos. Otros serán 'objetos enemigos' y harán lo contrario.
  • 3.8.G. Ampliación: Añade en pantalla un 'reloj' de cuenta atrás. Si se acaba el tiempo terminará el juego.
  • 3.8.H. Ampliación: Trata de añadir el efecto de la aceleración/frenado (MRUA) en todas las direcciones.
  • 3.8. I. Ampliación: Añade 'obstáculos' que haya que esquivar para poder avanzar.
  • 3.8.J. Ampliación: El personaje podrá lanzar proyectiles que eliminen a los enemigos.
  • 3.8.K. Ampliación: Al completar el recorrido (por ejemplo, al llegar a una zona de 'meta') se acabará el juego y se sumará a los puntos obtenidos el tiempo que faltaba, mostrando en un mensaje la puntuación total.
3.9 INVITADO: 'BOMBERMAN'CON EDGAR LLORENTE
Vamos a analizar un juego más complejo y tratar de entender cómo se consiguen ciertos efectos:
  • Usar un 'sprite' cuya apariencia va cambiando produciendo un efecto de movimiento ('sprite' = 'personaje').
  • Utilizar un 'mapa' para definir la posición de los elementos que aparecen en la pantalla.
  • Cada elemento fijo de la pantalla es tratado como un 'azulejo' o 'baldosa' (en inglés se denomina 'tile') con una apariencia y comportamiento distintos. Esto se consigue mediante la creación de 'clones' que se sitúan en las posiciones que indica el 'mapa', quedando así la pantalla como un embaldosado o alicatado (un conjunto ordenado de 'tiles').
 
3. 9. INVITADO: 'BOMBERMAN' CON EDGAR LLORENTE. (Ejercicios):
  • Descarga el programa para hacer los ejercicios:
  • 3.9.A. Cambia el diseño del personaje principal en todos sus movimientos: Los 3 sprites orientados al Norte, al Sur, al Este y al Oeste.
  • 3.9.B. Trata de averiguar cómo se define el mapa y, cuando lo sepas, cambia la disposición de los distintos elementos ('tiles' o 'baldosas'). Observa cómo cambia el funcionamiento del juego según hayamos situado los ostáculos, espacios verdes, paredes...
  • 3.9.C. Como observarás, hay otro personaje que no interviene en el juego. Crea el programa necesario para que un segundo jugador pueda controlar a ese personaje mediante otras teclas distintas, con la posibilidad de poner bombas también.
El juego parece no tener objetivo final: ¿Cuándo se gana o se pierde? Vamos a mejorar el juego incorporando las siguientes mejoras respecto el final:
  • 3.9.D. Como primera opción: El juego acabará cuando los dos jugadores se encuentren, apareciendo entonces un mensaje similar a "¡Enhorabuena!".
  • 3.9.E. Observa que, si el protagonista muere más de 3 veces el juego continúa sin que pase nada. Haz que cuando el protagonista pierda la ultima vida el juego termine.
  • 3.9.F. Si jugamos con 2 jugadores, entonces será necesario que los dos protagonistas pierdan todas sus vidas para que el juego termine, desapareciendo el jugador que se quede sin vidas.
  • 3.9.G. Al desaparecer un jugador no podemos hacer que se encuentren para que acabe el juego. Por tanto cambiaremos el objetivo por esta segunda opción de final: El juego acabará cuando un jugador llegue a una casilla central de distinto color. Para conseguir esto tenemos que hacer varias cosas:
    • Escoge uno de los 'Tile' (azulejos) que no se use (por ejemplo el 3) y cambia su diseño por otro más llamativo.
    • Cambia el mapa para que el 'Tile' central sea el escogido para acabar el juego.
    • Modifica el programa para que cuando alguno de los jugadores alcance esa casilla, el juego termine, mostrando un mensaje que indique quién es el ganador.
  • 3.9.H. Añade un cronómetro que cuente hacia atrás. Si el cronómetro termina de contar antes de que los jugadores se encuentren se acabará el juego, apareciendo el mensaje "¡Tiempo agotado!".
  • 3.9.I. Haz que, al principio del juego, el programa pregunte el nombre de cada jugador. Cuando, al final del juego, se proclame al vencedor, aparerá el mensaje "El ganador es: ..." completándose automáticamente con el nombre del jugador que se había introducido al principio.
  • 3.9.J. Como verás, hay dos sprites más. Haz que aparezcan y modifica el programa para que haya 4 jugadores, usando una combinación de teclas distinta para cada uno.
  • 3.9.K. ... Puedes hacer otras mejoras que creas interesantes...
3.10 FINALIZACIÓN: 'JUEGO LIBRE'
Con todo lo aprendido hasta ahora, trata de crear un juego sencillo.

3.10. CREA UN JUEGO (EJERCICIO RESUMEN):
  • Crea un juego con las características que desees.
  • Puedes tratar de reproducir juegos antiguos de ordenador, consolas, internet... por ejemplo los típicos ping-pong, Arkanoid, Invasores del espacio, Carreras, Laberintos, SuperMario...
  • Prueba juegos de otros usuarios de Scratch e investiga cómo están hechos mediante la opción "Ver dentro". Esa es la gran ventaja de hacerse una cuenta, que podemos compartir nuestros juegos y aprender de los que crean los demás.
  • No es necesario hacerlo difícil, empieza por algo sencillo que luego puede mejorarse. Los juegos que hoy conocemos son una evolución de los que había antiguamente, que tenían sprites muy básicos y pantallas muy sencillas.
  • Tu imaginación y tus ganas te harán progresar, adquirir más soltura y conocimientos.



MÁS RECURSOS:
VER EN EL INICIO DE ESTE CURSO DE SCRATCH





arriba

libro