Educación 3.0 | Homepage
El proyecto Scratch de los viernes (XIII): Space Invaders

El proyecto Scratch de los viernes (XIII): Space Invaders

7 Comentarios 🕔04.Mar 2016

Quién no ha jugado alguna vez en su vida a Space Invaders, uno de los grandes clásicos de los videojuegos de los 80. Esas naves espaciales, esos marcianitos, esos movimientos… son reconocidos por cualquiera con una mínima experiencia en este mundillo. Pues resulta que podemos crear un divertido de Space Invaders en Scratch, y de forma muy fácil.

Volvemos a la carga con un nuevo proyecto Scratch de los Viernes en el que te contaremos cómo empezar a enfocar el proyecto. Qué objetos necesitas, cómo han de moverse e interaccionar, así como por supuesto una serie de consejos para continuar evolucionando el proyecto. ¿Un Space Invaders en Scratch? Veamos cómo.

¿Cómo era Space Invaders?

Antes de comenzar, un vídeo recordatorio de cómo era Space Invaders que nos recordará y ayudará a traerlo a Scratch:

Y ahora sí, comencemos.

Primero, la nave

El elemento clave de Space Invaders es la nave, que se mueve en horizontal y siempre está situada en la parte inferior. Tan sencillo como buscar o crear nuestra propia imagen de la nave, llevarla a las respectivas coordenadas (que por ejemplo, al pulsar la bandera verde se coloque) y ya está.

Space Invaders en Scratch

Space Invaders en ScratchSi queremos mover la nave con las teclas de flechas de dirección, pues vamos a ello. Al presionar tecla flecha izquierda, cambiar la coordenada X por el valor que queramos; ídem con la tecla flecha derecha.

Pero la nave por si misma no es nada. Es necesario crear una bala con la que disparar a las naves enemigas, que puede ser perfectamente un rectángulo blanco. Es un nuevo objeto con una acción: cuando presionemos una determinada tecla —por ejemplo, espacio— irá a donde esté la nave, apuntará hacia arriba y se moverá hasta que toque el borde. Listo.

Segundo, los enemigos

Para crear las naves enemigas del Space Invaders en Scratch podemos recordar lo que hicimos con el proyecto de Arkanoid, de hace unas semanas: utilizar clones es más complejo, pero lleva a resultados más potentes; si no te atreves, simplemente crea un puñado de objetos que tengan el disfraz del enemigo (échale un vistazo a Google, porque hay GIFs que facilitan la labor).

Lo principal es la posición en la que aparecerán los enemigos. Prueba por ejemplo a colocarlos en fila, uno junto al otro. ¿Cómo? Tan sencillo como que su coordenada y sea la misma, mientras que la x variará según el tamaño de tu objeto. Prueba diferentes posiciones hasta que consigas las agrupaciones que deseas.

Space Invaders en Scratch

Una vez la tengas, tus enemigos tendrán que interactuar con la bala: si tocan la bala, desaparecerán —o el clon será eliminado—, ¿adivinas cómo? Pistas: habrá que comprobar… por siempre, si el enemigo está tocando la bala. Cuando la toque, que se esconda. Fácil, ¿no? Una vez más, recuerda que hay otras muchas soluciones a esta problemática.

Hasta el infinito… y más allá

Ésta es sólo una breve introducción al Space Invaders, que como siempre os planteamos como proyecto base sobre el que continuar mejorando. Cuidado, porque engancha y te puedes tirar media tarde programando… y la otra media, jugando. A continuación unas cuantas mejoras que puedes añadir.

  • El Space Invaders original tiene unos muros de defensa que separan nuestra nave de las enemigas. Prueba a añadirlos y que si los disparas, se vayan desgastando.
  • Falta un elemento clave: que los enemigos disparen. ¿Cómo hacerlo? Si lo has hecho con clones lo tienes algo difícil (por aquí unas pistas); si tienes objetos independientes será más fácil. Piensa en cómo dispara nuestra nave, y por ahí van los tiros.
  • Space Invaders GIF¿Qué ocurre cuando destruimos todas las naves enemigas? Ahora mismo, nada. Crea una variable que vaya contabilizando las naves que destruyes, y cuando las tengas todas, manda un mensaje de que te has pasado el nivel…
  • … o mejor aún, añade un segundo nivel en el que las naves vayan más rápido, o disparen más. Y un tercero, y un cuarto, y…
  • También falta una nave enemiga que espontáneamente aparecía en la parte superior. Créala de forma que se comporte como en el juego original.
  • Y lo más importante, sé creativo: añade sonidos, parte clave en este juego. También puedes poner distintos colores, muñecos, formas, movimientos… ¡lo que quieras!

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 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!

Pablo EspesoPablo Espeso Tascón es Ingeniero Informático y coordinador del Club de Jóvenes Programadores de la Universidad de Valladolid (CJP @ UVa)

 

Artículos similares

5 libros para aprender a programar (y enseñar a tus alumnos)

5 libros para aprender a programar (y enseñar a tus alumnos) 0

La programación es uno de los campos educativos con mayor crecimiento en los últimos años,

El Proyecto Scratch de los viernes (XXIX): cazando al ratón

El Proyecto Scratch de los viernes (XXIX): cazando al ratón 0

¿Quién no se ha jugado alguna vez al juego del gato que caza al ratón?

Apps y juegos para aprender a programar

Apps y juegos para aprender a programar 4

¿Alguna vez has pensado en aprender a programar jugando a un videojuego? Se puede, claro

Robótica, ¿por dónde empezar? Los mejores kits para iniciarse

Robótica, ¿por dónde empezar? Los mejores kits para iniciarse 13

La robótica es una materia que a muchos les da auténtico pánico. Piensan en las

Las mejores plataformas para programar Arduino con Scratch

Las mejores plataformas para programar Arduino con Scratch 0

Cuando hablamos de programación en el entorno educativo hay dos plataformas que surgen rápidamente en

Sobre el autor

Pablo Espeso

Pablo Espeso

Ingeniero Informático, coordinador del Club de Jóvenes Programadores de la Universidad de Valladolid (CJP @ UVa) y apasionado por la docencia de las nuevas tecnologías, de la informática y, en particular, de la programación.

Ver más artículos 🌎Ver web Enviar un e-mail

7 Comentarios

  1. 🕔 18:56, 06.Mar 2016

    Profesora Carolina

    Hola Pablo.

    Quería felicitarte por tu trabajo.

    Me llamo Carolina, soy profesora de Tecnología.

    profesoracarolinapr.blogspot.com es el blog con el que trabajo en clase con mis alumnos.

    El siguiente enlace es de una entrada en la que hice uso de posts tuyos sobre Scratch.

    http://profesoracarolinapr.blogspot.com.es/2016/01/programacion-en-scratch-i.html

    http://profesoracarolinapr.blogspot.com.es/2016/01/aprendiendo-scratch-i.html

    Felicidades por el estupendo trabajo que realizas.

    Si no estás de acuerdo con el uso que hice de tu material sólo tienes que decírmelo y lo retiraré.

    De igual forma me gustaría compartir mi blog contigo, por si en algún momento te resulta útil.

    Un saludo.
    Carolina Pérez

    Responder comentario
  2. 🕔 11:34, 31.Mar 2016

    revangel

    ¡Hola, Pablo!
    Estoy atascada con el tema de que los aliens disparen, a ver si me podéis echar una mano. ¿Cómo puedo hacer que un sprite (la bala) se dispare desde otro (el alien) elegido al azar? ¿Con listas? ¿Con variables que guarden la posición de cada alien? Entiendo que creamos una sola bala, no una por cada sprite/clon…
    Igual lo estoy mirando desde el lado equivocado y tengo que darle la vuelta.
    Estoy trabajando con las dos ideas: aliens como sprites y aliens como clones.
    ¡Gracias por estos viernes de Scratch!

    Responder comentario
    • 🕔 8:45, 01.Abr 2016

      Pablo Espeso Autor

      Hola revangel,

      Depende de cómo hayas implementado los aliens, si son clones o sprites. Como me dices que estás creando las dos versiones, te cuento:

      1) Si los aliens son sprites: es la forma fácil, primero tendrás que determinar aleatoriamente a qué sprite va la bala, y luego la “disparas”. Generas un número aleatorio (en un rango entre 1 y el número de sprites alien que tengas) y según sea el resultado, va a un alien u otro; una vez esté en el alien, el movimiento es hacia abajo a la velocidad que le quieras poner.

      2) Con clones la cosa se complica, ya que por defecto la bala irá al último clon generado. Échale un vistazo al wiki oficial que te dará más info http://wiki.scratch.mit.edu/wiki/Advanced_Clone_Usage

      Lo que yo he hecho es:
      1) La nave que maneja el usuario dispara la bala, no sus clones. Esto es fácil.
      2) Los enemigos disparan clones de la bala, de forma que cuando generan el clon le pasan las coordenadas a través de dos variables, y así la bala sabe dónde tiene que ir.

      Te dejo por aquí el proyecto, por si quieres echarle un vistazo: https://scratch.mit.edu/projects/100238999/

      Espero que te haya servido de ayuda.

      Un saludo!!
      Pablo

      Responder comentario
      • 🕔 8:12, 04.Abr 2016

        revangel

        ¡Genial!, muchísimas gracias por tus indicaciones, Pablo. Voy a buscar un rato largo para ponerme a ello y os contaré cuando lo consiga.
        Gracias por estar ahí, animando a chicos y grandes a scratchear y mucho más.

        Responder comentario
  3. 🕔 11:18, 11.Abr 2016

    revangel

    Ya casi lo tengo con sprites. Pregunta que se me ocurre: ¿se pueden crear listas que contengan variables?
    ¡Gracias!

    Responder comentario
    • 🕔 11:22, 11.Abr 2016

      Pablo Espeso Autor

      Genial! En Scratch, sí. Igual que creas una variable (Datos > Crear una Variable) puedes crear una lista (Datos > Crear una lista).

      Las listas contienen esencialmente variables, es decir, el concepto de lista es que es una lista de variables.

      Responder comentario
  4. 🕔 10:22, 12.Abr 2016

    revangel

    Hola, Pablo. Aquí va lo que he conseguido hasta ahora y con tu ayuda https://scratch.mit.edu/projects/105045120/ Quedan ajustes, sonido, barreras, etc… pero ya se va pareciendo y además ¡parece que funciona! De todos modos, creo que igual se puede hacer con menos código, más eficiente, aunque no se me ocurre cómo. Mil gracias

    Responder comentario

Escribe un comentario

Tu email no será publicado. Los campos obligatorios están marcados *

Nº 27 Educación 3.0

Publicidad

Publicidad

Categorías

Publicidad

Uso de cookies

El sitio web de Educación 3.0 utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies