Podemos hacer muchas cosas que disparen, pero ¿por qué no hacerlo divertido? Bajo esta premisa, y con el objetivo de divertirnos —y, de paso, aprender algo de programación—, hoy llega un nuevo Proyecto Scratch de los Viernes. Coge tus bananos, ordena tu escritorio y ponte en marcha, porque hoy vamos a aprender a programar un lanza-bananas.
Necesitarás un mono y unas bananas
¿Quién más que un mono va a lanzar las bananas? Por supuesto, necesitaremos al menos dos objetos: uno, el protagonista 'lanzador', en nuestro caso será un mono; otro, el objeto lanzado, en nuestro caso unas bananas. Ambos los hemos cogido de los objetos predefinidos de Scratch, y el mono viene además con un total de tres disfraces que nos darán mucho juego; no obstante, si lo prefieres, puedes coger otros objetos que encuentres en Internet
Añade tus objetos al escenario y cambia su tamaño hasta que se ajusten a lo que consideres necesario, nómbralos como creas conveniente y continuemos. Nuestro objetivo es que cuando pulsamos una determinada tecla —por ejemplo 'espacio— el mono lance una ristra de bananas en la dirección del ratón, un ejercicio con ciertas similitudes al que planteamos por aquí pero con algunas diferencias.
Mueve al mono
Para que no sea un juego soso, vamos a hacer que nuestro simio se mueva. Simplemente, con las teclas de dirección, algo que ya hemos hecho en muchos otros proyectos. En este caso vamos a hacerlo de una forma algo diferente que da como resultado un movimiento mucho más fluido.
En vez de tener diferentes bloques que responden a cuando presionamos las teclas, haremos que el mono esté siempre comprobando si se pulsa alguna de las teclas. En este caso, deberemos indicarle el movimiento que queramos que haga. Éste es el código:
Asígnale los valores de movimiento que consideres necesarios, que deben ser acordes al tamaño del objeto y tus expectativas en cuanto a la velocidad. Y continuamos.
Y ahora, ¡dispara!
Decíamos antes que queríamos que nuestro mono dispare sus bananas cuando pulsemos la tecla espacio. Pero, ¿hacia dónde las dispara? Fácil: hacia donde tengamos el puntero del ratón.
En primer lugar, la banana debe aparecer escondida y mostrarse sólo con la tecla espacio: cuando presionemos esta tecla, la banana irá al mono, apuntará hacia el puntero del ratón y se mostrará. Luego, comenzará a moverse hasta que toque el borde, que entonces desaparecerá:
Ten en cuenta que este código lanza las bananas de una en una, cuando lo ideal es que pueda lanzar muchas seguidas…
Hasta el infinito… y más allá
Y es que, como todo en Scratch, las posibilidades para ampliarlo y mejorarlo son infinitas. Aquí os dejamos algunas ideas:
- Que lance más de una banana a la vez, claro. Y luego, que tenga una "munición" de bananas. ¿Te atreves?
- ¿Un mono que dispara solo? ¿Ya está? Por supuesto que no. Puedes añadir objetos que aparezcan y que tenga que derribar con todas estas bananas.
- Crea un marcador tanto de objetos derribados como de "bananas" utilizadas, a través de variables.
- Y niveles, ¡muchos niveles! Que a medida que avance vayan complicándose, por ejemplo haciendo que los objetos vayan más rápido.
- Para darle un toque de complejidad al juego, ¿qué te parece añadir objetos que, cuando el mono los recoge, gana habilidades? Por ejemplo bananas más potentes (de otro color), inveulnerabilidad, más velocidad…
- Puedes cubrir la parte más estética y de diseño del juego: que cuando dispares, el mono mueva las manos, o que la banana vaya girando hasta que, cuando toca el borde, estalle en cachitos.
El proyecto Scratch de los viernes es la sección en la que, cada primer viernes de mes, 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, relojes, videojuegos… ¿Quieres saber más? Échale un vistazo a las ideas recopiladas en este enlace o al estudio EDUCACIÓN 3.0 en la comunidad de Scratch donde estamos incluyendo nuestros proyectos de los Viernes. Y por supuesto, ¡cualquier propuesta o sugerencia que tengas será bienvenida!