Conducción de una nave espacial

¿Preparados para un viajecito al espacio? En esta sesión hemos retomado la programación en Scratch con este pequeño juego. Lo primero que necesitamos son:

  • 2 personajes: una nave espacial (Rocketship) y un planeta.

  • 2 fondos.

La nave espacial tiene que partir desde el punto central inferior de la escena del primer fondo, hacer una cuenta atrás “3, 2, 1, ¡Despegando!” cuando se pulse la bandera verde y después moverse respondiendo a las teclas: flecha arriba, flecha abajo, flecha derecha y fecha izquierda. Con estos movimientos, si la nave espacial choca con el planeta, éste se desplazará aleatoriamente a una nueva posición.

Además, cuando la nave espacial suba muy arriba, el primer fondo cambiará al segundo.

Por otro lado, el planeta hace un giro constante e infinito sobre sí mismo. ¡El planeta no para nunca! Y cuando sea tocado por la nave espacial, entonces se moverá, de manera aleatoria.

¿Cómo vamos a hacer todo esto? Aquí tenéis los objetivos que nos hemos marcado para esta sesión:

1) Aprender cómo se mueven los objetos por la pantalla. Para ello lo primero ha sido explicar qué son los ejes X e Y: el eje X es el eje horizontal y encontramos que la coordenada X aumenta según nos desplazamos hacia la derecha y disminuye hacia la izquierda. El eje Y es el eje vertical y encontramos que la coordenada Y aumenta según nos desplazamos hacia arriba y disminuye hacia abajo. Nos ha servido mucho pensar en los edificios y qué significa cuando nos encontramos un piso -1, -2, etcétera. Nuestros pequeños programadores tenían muy claro que estos pisos son subterráneos, es decir, están por debajo del suelo. Y con eso aprendimos a que en nuestra escena va a ser muy importante trabajar con valores positivos y negativos.

¿Y dónde está el punto que tiene la coordenada x = 0 y la y = 0, es decir, el (0, 0)? Pues está justo en el centro de la escena, donde aparece inicialmente nuestro personaje Gato, como podéis observar:

2) Entender cómo se giran los objetos. Para girar los personajes en Scratch tenemos que pensar en un

círculo. Si lo dividimos en dos mitades iguales, tenemos valores de 0 a 180 en la mitad derecha del círculo y de 0 a -180 en la mitad izquierda para indicar la dirección a la que apunta un personaje. Con 0 apuntaremos hacia arriba, con 90 a la derecha, con -90 a la izquierda y con 180 (o -180, según veamos el vaso medio lleno o medio vacío) hacia abajo. ¡Sí, de nuevo nos han aparecido los números negativos! Y seguro que no será la última vez… Además, podemos utilizar distintos estilos a la hora de girar, como hacerlo en todas las direcciones (de esta forma, los personajes se inclinarán hacia un lado, hacia el otro o incluso se pondrán boca arriba o boca abajo), cambiar únicamente de izquierda a derecha (siempre mirando al frente) o incluso que no giren, aunque internamente ellos estén “apuntando” a una determinada dirección.

Atención: ¿te has dado cuenta de que nuestro personaje Gato está en la Dirección 90? Pues ahora que te hemos contado lo de los giros seguro que ya sabes por qué.


3. Eventos. Scratch trabaja por eventos. Tendremos que buscar en los bloques de color amarillo aquellos que nos permitan:

  • al presionar tecla [flecha arriba]: cada vez que se pulsa la flecha arriba hay que sumar un valor a la y (por ejemplo 10) y cambiar la dirección de la nave espacial.

  • al presionar tecla [flecha abajo]: cada vez que se pulsa la flecha abajo hay que restar un valor a la y (por ejemplo -10) y cambiar la dirección de la nave espacial.

  • al presionar tecla [flecha derecha]: cada vez que se pulsa la flecha derecha hay que sumar un valor a la x (por ejemplo 10) y cambiar la dirección de la nave espacial.

  • al presionar tecla [flecha izquierda]: cada vez que se pulsa la flecha derecha hay que restar un valor a la x (por ejemplo -10) y cambiar la dirección de la nave espacial.

  • al hacer click en la bandera verde: hay que detectar si la nave supera una determinada y para cambiar el fondo de la escena. Y además mover la nave espacial para que aparezca debajo de la escena.

  • al hacer click en la bandera verde: hay que detectar si el planeta es impactado por la nave espacial. En caso afirmativo, el planeta se moverá a una posición aleatoria (bloque azul “ir a [posición aleatoria]”).


4. Bucle infinito. Existen bloques de Control (los de color naranja) que nos permiten repetir sentencias. Busca aquel que haga que el personaje planeta no pare de girar nunca y que, en el caso de que la nave espacial le toque, se mueva a una posición aleatoria.

Un consejo. Para saber dónde están los objetos, en estas primeras sesiones te aconsejamos que coloques visible la posición y la dirección de la nave espacial. Para eso marca los bloques correspondientes y los verás en la escena:

Aquí podéis ver el resultado:

Por ahora eso es todo. Seguiremos completándolo para hacer un videojuego más completo.

Ah, y no olvidemos las matemáticas, como ya estamos viendo ¡van a ser muy importantes para saber programar!