Hoy presentamos un nuevo proyecto Scratch de los viernes de corte sencillo, fácil de implementar pero que requiere de una cierta organización para llevarlo a cabo eficazmente. Es un juego, otro más, que consiste en un personaje que deberá esquivar una pelota.
Podemos darle rienda suelta a la creatividad eligiendo qué objetos podremos crear, los fondos, sonidos o mucho más. Como siempre, hoy proponemos una idea de proyecto Scratch con múltiples mejoras posibles. Vamos a ello.

Objetivo: un objeto que esquiva a otro

El funcionamiento es muy simple. Queremos conseguir un juego con el que el usuario manejará los movimientos de un personaje u objeto, por ejemplo haciendo que se mueva constantemente hacia el puntero del ratón, a una velocidad determinada. De esta forma le daremos dinamismo, aunque por supuesto también se pueden utilizar otros métodos como las teclas de dirección.
También existirá otro objeto que se moverá automáticamente, rebotando con los bordes del escenario. La finalidad es que el primer objeto - que, recuerdo, nosotros manejamos - esquive al segundo. Fácil, ¿verdad?

Lo que necesitamos para este proyecto Scratch

Con esta guía afrontaremos el funcionamiento más básico y sencillo de este proyecto y, como es habitual, al final propondremos varios incrementos de mejora para hacer más completo el juego.
Antes de comenzar debemos plantearnos qué objetos necesitamos, y cómo se moverán:

  • Un primer objeto que manejará el propio usuario. Se moverá constantemente y siempre apuntará al puntero del ratón, de forma que mover el ratón implicará un cambio en la dirección de este objeto.
  • Un segundo objeto que aparecerá en una posición determinada, tomará una dirección aleatoria y comenzará a moverse a una velocidad constante.

Proyecto Scratch De Los Viernes
En mi caso he elegido un murciélago que Scratch trae en su biblioteca de objetos para que sea el protagonista del juego (y que al tener disfraces puede dar juego a crear movimientos dinámicos si alternamos los dos disfraces), y una pelota de béisbol que será el 'enemigo' y lo que deberemos esquivar. Te recordamos nuestro artículo cómo buscar imágenes en Google, donde recopilamos trucos avanzados que vienen de perlas, entre otras cosas, para encontrar imágenes para proyectos Scratch.

Inicializando los objetos

Ya puestos a los mandos de Scratch tenemos que determinar la primera fase de la programación: inicializar los objetos. Esto significa asignar el estado en el que arrancarán una vez pulsemos la bandera verde de Scratch, incluyendo dónde comenzarán el juego y la dirección que tomarán.
Esta fase es importante tanto en este proyecto como en otros ya que indica precisamente cómo comenzará el proyecto. En este caso, por ejemplo, es necesario que los dos objetos aparezcan en posiciones alejadas, por ejemplo en dos extremos opuestos del escenario. Os recuerdo que el escenario de Scratch es bidimensional y se basa en un eje de coordenadas X-Y, con X entre [-240, 240] e Y entre [-180, 180].
Scratch Rejilla De Coordenadas
En mi caso, las posiciones de mis objetos son las siguientes:

  • Murciélago: (180, 140)
  • Pelota: (-180, -140)

Las posiciones están claras, y lo siguiente será elegir una dirección para que empiece el movimiento. En el caso del murciélago siempre estará apuntando en la dirección del ratón de ordenador, con lo que no habrá mayor problema; en la pelota deberemos asignar una posición aleatoria apuntando en una dirección al azar entre 1 y 360 grados, cubriendo así la circunferencia completa.
En lo referente al movimiento podríamos utilizar la instrucción  'por siempre', pero entonces el juego no finalizaría nunca. Una opción más atractiva es utilizar un 'repetir hasta que' <tocando el otro objeto> (categoría Control, color amarillo) de forma que cuando los objetos se tocan, el juego finaliza. Dentro de esta sentencia incluiremos las instrucciones de mover X pasos (categoría movimiento, color azul), donde X será la velocidad de movimiento para cada uno de los objetos.

Cuando se tocan...

Hablábamos de qué debe ocurrir cuando los objetos se tocan, y aquí está buena parte de la filosofía del juego. En nuestra propuesta sólo se permite una partida, de forma que cuando el jugador 'pierde' debe reiniciarse el juego al completo. Por ello, los objetos se mueven hasta que uno toca al otro; tras ello, el juego termina.
Para detectar esta interacción es cuando utilizamos la instrucción 'tocando X' (categoría Sensores, color azul claro) y la añadimos dentro del 'repetir hasta que'. Una vez se hayan tocado, la ejecución continuará por debajo.
Scratch Chuleta De Código
Un aspecto muy interesante para darle enjundia al juego es medir el tiempo, algo que puede hacerse de forma muy sencilla gracias al cronómetro y a una variable que creemos específicamente para ello, del siguiente modo:

  • Cuando el juego se inicia, reiniciamos el cronómetro gracias a la respectiva instrucción 'reiniciar cronómetro' (categoría Sensores, color azul claro).
  • Cuando un objeto toca al otro, guardamos el valor de cronómetro en la variable creada gracias a la instrucción 'fijar nombre_de_la_variable a [cronómetro]' (categoría Datos, color naranja).

Podemos utilizar mensajes para que simplificar el código con la finalidad de facilitar su comprensión, de forma que quedaría de la siguiente forma:
Cómo Usar Un Cronómetro En Scratch
Nota: los mensajes start_time y end_time los envían los objetos cuando el juego se inicia y termina, respectivamente.

Hasta el infinito... y más allá

Las explicaciones del proyecto Scratch que os traemos hoy suponen una base sobre la que seguir construyendo, con muchísimas posibilidades de ampliación e incrementos. A continuación os proponemos algunas de ellas:

  • Queremos que el juego sea cada vez más difícil, y para ello puede ser una buena opción hacer que la velocidad del objeto que se mueve automáticamente vaya incrementándose con el tiempo. Esto se puede utilizando una variable, en vez de un número fijo de pasos.
  • Podemos hacer que la pelota tenga un comportamiento más aleatorio si, por ejemplo, cada vez que toca un borde rebota en una dirección al azar.
  • Puedes crear diferentes niveles. Si por ejemplo consigues aguantar 30 segundos, se pasa al siguiente nivel en el que la pelota va más rápido. Y así indefinidamente.
  • Puedes personalizar como quieras los objetos o el escenarios. Incluso, también puedes hacer que los objetos dejen un rastro con el lápiz de por donde van pasando.
  • Otro punto de dificultad consiste en agrandar los objetos, ya que cuanto más grandes... más difíciles serán de esquivar. Así aprovecharemos la categoría de instrucciones Apariencia (color morado), que también nos permite cambiar el color, por ejemplo.
  • ¿Quieres añadir sonidos? Puedes hacerlo, claro. Por ejemplo, que cuando la pelota rebote se reproduzca un sonido, o que cuando toque con el otro objeto suene alguna canción, o algo así.

El proyecto Scratch de los viernes es la sección en la que, cada quinto día de la semana, proponemos una idea de proyecto y damos algunas pistas para llevarlo a cabo. Hemos hablado de movimientos, figuras geométricas, historias, juegos de preguntas y respuestas, videojuegos... ¿Quieres saber más? Échale un vistazo las ideas recopiladas en este enlace y, por supuesto, ¡cualquier propuesta o sugerencia que tengas será bienvenida!