programar con scratch unidad 2: …2.pdf · 2 programar con scratch unidad 2: programaciÓn de un...

21
1 PROGRAMAR CON SCRATCH UNIDAD 2: PROGRAMACIÓN DE UN JUEG0 Tema 1: Cómo empezar 1.1 Primer personaje: “pelota” 1.2 Estructura e instrucciones 1.3 Las variables 1.4 Introducir variables Tema 2: Elementos y valores 2.1 Añadir el personaje barra 2.2 Control del personaje pelota 2.3 Efecto rebote 2.4 Cambiar escenario 2.5 Añadir personaje barra larga 2.6 “Repetir hasta” Tema 3: Modificaciones 3.1 Otras variables 3.2 Separar “Repetir hasta…” 3.3 Final de la repetición 3.4 Errores 3.5 Estructura final 3.6 Resumen Tema 4: Finalizando el juego 4.1 Añadir sonido 4.2 Control de la velocidad 4.3 Añadir texto 4.4 Mensaje final del programa Ejercicios Unidad 2 Modificar un programa conocido Construcción de un juego clásico Evaluación de la unidad 2: 10 preguntas tipo test TEMA 1: Cómo empezar

Upload: duongque

Post on 31-Jan-2018

233 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: PROGRAMAR CON SCRATCH UNIDAD 2: …2.pdf · 2 PROGRAMAR CON SCRATCH UNIDAD 2: PROGRAMACIÓN DE UN JUEG0 1.1 Primer personaje: ^pelota _ En esta unidad nos centraremos en …

1

PROGRAMAR CON SCRATCH

UNIDAD 2: PROGRAMACIÓN DE UN JUEG0

Tema 1: Cómo empezar 1.1 Primer personaje: “pelota” 1.2 Estructura e instrucciones 1.3 Las variables 1.4 Introducir variables

Tema 2: Elementos y valores 2.1 Añadir el personaje barra 2.2 Control del personaje pelota 2.3 Efecto rebote 2.4 Cambiar escenario 2.5 Añadir personaje barra larga 2.6 “Repetir hasta”

Tema 3: Modificaciones 3.1 Otras variables 3.2 Separar “Repetir hasta…” 3.3 Final de la repetición 3.4 Errores 3.5 Estructura final 3.6 Resumen

Tema 4: Finalizando el juego 4.1 Añadir sonido 4.2 Control de la velocidad 4.3 Añadir texto 4.4 Mensaje final del programa

Ejercicios Unidad 2

Modificar un programa conocido Construcción de un juego clásico Evaluación de la unidad 2: 10 preguntas tipo test

TEMA 1: Cómo empezar

Page 2: PROGRAMAR CON SCRATCH UNIDAD 2: …2.pdf · 2 PROGRAMAR CON SCRATCH UNIDAD 2: PROGRAMACIÓN DE UN JUEG0 1.1 Primer personaje: ^pelota _ En esta unidad nos centraremos en …

2

PROGRAMAR CON SCRATCH

UNIDAD 2: PROGRAMACIÓN DE UN JUEG0

1.1 Primer personaje: “pelota”

En esta unidad nos centraremos en un juego muy conocido "ping pong" y utilizaremos los

conocimientos que adquirimos en la unidad anterior, para hacer un programa algo más interesante.

Este vídeo (José David Muñoz) muestra como programar con Scratch of

line.http://www.youtube.com/watch?v=0yPwpA7mRB0, pero recuerda que trabajaremos con

Scratch on line y aunque el funcionamiento es el mismo, la interface es un poco distinta.

El juego que programarás en esta unidad, tendrá un aspecto parecido a este

http://scratch.mit.edu/projects/2804252/. En los temas 1 y 2 programaremos lo más básico para

que funcione el juego., en el tema 3 lo modificaremos y en el tema 4 lo mejoraremos. Como puedes

ver, a lo largo de esta unidad, construiremos todo el juego por lo que, cada vez que trabajes con él

deberás partir de la última modificación.

Sin más preámbulos empecemos:

Accede a Scratch on line. Como ya estás registrado/a, entra con tu nombre de usuario y contraseña,

elige la opción “Nuevo” del menú “Archivo”, cambia el nombre (Untitled...) que ves en la parte

superior derecha. En el escenario aparece el gatito de siempre lo eliminas con la opción tijera.

También puedes borrarlo desde el escenario. La idea es que quede vacío.

A continuación sigue estos pasos: 1- Abre la herramienta de dibujo. 2- dibuja un círculo (parecido a lo

que ves en la imagen inferior). 3- Usando la herramienta bote de pintura, colorea el círculo. Clic en

Aceptar y listo. Ahora tenemos un personaje nuevo con el que podemos empezar a trabajar. 4-

Pincha en la pestaña Programas.

1.2 Estructura e instrucciones

Page 3: PROGRAMAR CON SCRATCH UNIDAD 2: …2.pdf · 2 PROGRAMAR CON SCRATCH UNIDAD 2: PROGRAMACIÓN DE UN JUEG0 1.1 Primer personaje: ^pelota _ En esta unidad nos centraremos en …

3

PROGRAMAR CON SCRATCH

UNIDAD 2: PROGRAMACIÓN DE UN JUEG0

Para empezar podemos hacer que la pelota rebote al pulsar la banderita verde. Ya sabemos cómo hacerlo, ¿verdad? Conocemos las instrucciones “mover”, “rebotar si toca un borde”, la estructura interactiva “por siempre” y la instrucción “al presionar”, que detecta si hemos pulsado la bandera verde para ver cómo funciona. Combinando todo esto podemos hacer que la pelota rebote.

Puedes comprobar que el efecto siempre es mismo y en la misma dirección, por lo tanto siempre hará el mismo camino con los mismos rebotes. No es muy espectacular que digamos ¿cierto?

Sigamos avanzando. Vamos a poner la pelota en un punto de partida determinado, con una dirección inicial aleatoria (es decir, elegida al azar).

¿Recuerdas la instrucción “ir a” de la categoría movimiento? pues la podemos combinar con “apuntar en dirección para conseguir precisamente eso que queremos:

Observa que hemos utilizado la expresión "número al azar entre -60 y 60" como argumentos. Esto nos elegirá un número entre -60 y 60 (hay 121 posibles) al azar, para decidir en qué dirección se moverá inicialmente la pelota. Ya ves que ahora, cada vez que pulsamos la bandera verde, la pelota se mueve en diferentes direcciones.

1.3 Las variables

Page 4: PROGRAMAR CON SCRATCH UNIDAD 2: …2.pdf · 2 PROGRAMAR CON SCRATCH UNIDAD 2: PROGRAMACIÓN DE UN JUEG0 1.1 Primer personaje: ^pelota _ En esta unidad nos centraremos en …

4

PROGRAMAR CON SCRATCH

UNIDAD 2: PROGRAMACIÓN DE UN JUEG0

Aprovecharemos este programa para introducir un concepto muy importante en programación y que hasta el momento, si hemos nombrado pero, no hemos necesitado. Es el concepto de Variable.

Pulsando en la categoría “Datos” y aparecen dos botones: Crear una variable y Crear una lista. Si hacemos clic en “Crear una variable” nos pedirá que nombre queremos poner. En el caso que nos ocupa le llamaremos “Velocidad”, aceptamos y aparecerán las instrucciones, que ves en la imagen.

Pero, ¿qué es una variable? Imagínate una variable como una cajita

donde guardamos un valor (cualquier valor). A menudo, en los

programas que haremos, empezando por este, necesitaremos

guardar valores e ir cambiando a medida que el programa se

ejecuta. El lugar donde guardamos estos valores es lo que

llamaremos variable.

En este caso, tenemos la variable “Velocidad” y cuatro instrucciones

donde guardaremos un número, que indicará la velocidad con la

que se mueve la pelota.

Fíjate en la casilla de verificación que está a la izquierda de la

variable "Velocidad". Seleccionándola (en la imagen ya está

seleccionada), el valor de la variable será visible en el “escenario”

Así, cuando nos interese, podemos ver el valor que tiene la variable,

mientras el programa se ejecuta.

1.4 Más sobre variables

Page 5: PROGRAMAR CON SCRATCH UNIDAD 2: …2.pdf · 2 PROGRAMAR CON SCRATCH UNIDAD 2: PROGRAMACIÓN DE UN JUEG0 1.1 Primer personaje: ^pelota _ En esta unidad nos centraremos en …

5

PROGRAMAR CON SCRATCH

UNIDAD 2: PROGRAMACIÓN DE UN JUEG0

En el tema anterior hemos visto que seleccionando la variable se hace visible en el escenario, pero con seleccionarla no basta. Hay que decirle al programa que la muestre o la esconda y las instrucciones que lo hacen posible son estas:

Una variable, contiene un valor es en sí misma, una expresión numérica (como lo puede ser un solo número). El resultado de la expresión “velocidad” es el valor guardado en la cajita 'velocidad'. Naturalmente puede formar parte de otras expresiones, como cualquier otra expresión numérica. Tenemos dos instrucciones más que tienen que ver con las variables: “fijar” y “cambiar”. La primera, asigna a la variable el valor expresión numérica, valor que corresponde a la expresión numérica dentro de la cajita con el nombre de la Variable.

En este caso, la variable “fijar velocidad” toma por valor el número 0.

La otra instrucción, “cambiar velocidad por” lo que hace es cambiar el valor de la variable sumándole el resultado de la expresión numérica. Así, si ejecutamos la instrucción “cambiar velocidad por 1” no podemos saber a priori cuál será el nuevo valor de 'velocidad', ya que dependerá del valor que tenía antes de ejecutar la instrucción.

Si antes de ejecutar la instrucción “cambiar velocidad por 1”, la variable “Velocidad” tenía por valor 2, después de ejecutarse, el valor “Velocidad” será 3, en cambio, si antes de ejecutar esta instrucción la variable “Velocidad” valía 15, después de ejecutarse el valor será 16. Ahora bien, si la instrucción es “cambia velocidad por -3” y antes de ejecutarla la “Velocidad” valía 32, después el valor “Velocidad” será 29.

1.5 práctica con variables

Page 6: PROGRAMAR CON SCRATCH UNIDAD 2: …2.pdf · 2 PROGRAMAR CON SCRATCH UNIDAD 2: PROGRAMACIÓN DE UN JUEG0 1.1 Primer personaje: ^pelota _ En esta unidad nos centraremos en …

6

PROGRAMAR CON SCRATCH

UNIDAD 2: PROGRAMACIÓN DE UN JUEG0

Ahora que tenemos la variable “Velocidad” como pequeño almacén de un número, podemos aprovechar para hacer que nuestro programa sea un poco más divertido. Para ello, introduciremos la variable “Velocidad”, con el fin de acelerar la pelota a medida que éste se ejecuta el programa. Esta acción requiere tres añadidos. Utilizaremos la variable para indicar la velocidad de la pelota. En el programa que estamos trabajando, la velocidad de la pelota es "10 pasos por iteración", es decir, la pelota avanza 10 pasos cada vez que se ejecuta (“mover 10 pasos”). Ahora haremos que este número de pasos dependa del valor de la variable “Velocidad”. En tu programa, arrastra la variable “Velocidad” e introdúcela en el lugar que indica el número de pasos a mover, tal como se ve en la imagen.

Inicializar una variable es fijar la variable a 0, (en este caso es “fijar Velocidad a 0”) antes de comenzar la iteración. Es muy importante que las variables tengan un valor antes de utilizarlas por primera vez. No inicializar variables es uno de los errores más típicos en un programa.

A cada vuelta de la repetición añadiremos 1 a la velocidad, de manera que la pelotita irá más de prisa en cada vuelta de la iteración. Así, el programa modificado queda así:

TEMA 2: Efectos y control

Page 7: PROGRAMAR CON SCRATCH UNIDAD 2: …2.pdf · 2 PROGRAMAR CON SCRATCH UNIDAD 2: PROGRAMACIÓN DE UN JUEG0 1.1 Primer personaje: ^pelota _ En esta unidad nos centraremos en …

7

PROGRAMAR CON SCRATCH

UNIDAD 2: PROGRAMACIÓN DE UN JUEG0

2.1 Añadir el personaje “barra”

Primero modificamos el programa anterior eliminando “cambiar Velocidad por 1” que está dentro de la estructura “por siempre” (basta con que pinches encima de ella la arrastres y la borres o la traslades a su sitio). La inicialización y la utilización de la variable “Velocidad” dentro del “mover Velocidad pasos” deben quedarse como está.

Abrimos el editor de dibujos para crear una barra rectangular, no demasiado larga ni demasiado gruesa.

Si la barra no nos ha salido bien, ningún problema. Con la barra seleccionada, vamos a la pestaña

'trajes' y, con el editor de dibujos, modificamos lo que sea.

Ahora ya tenemos dos personajes en nuestro juego: la pelota y la barra. La pelota tiene un programa

asociado (como se puede ver si la seleccionas) pero la barra todavía no, vamos a asociarlo. Sitúa el

ratón en el escenario y arrastra la barra hasta la mitad inferior, más o menos.

2.2 Control del personaje barra

Page 8: PROGRAMAR CON SCRATCH UNIDAD 2: …2.pdf · 2 PROGRAMAR CON SCRATCH UNIDAD 2: PROGRAMACIÓN DE UN JUEG0 1.1 Primer personaje: ^pelota _ En esta unidad nos centraremos en …

8

PROGRAMAR CON SCRATCH

UNIDAD 2: PROGRAMACIÓN DE UN JUEG0

¿Qué programa tendrá la barra? La misión de la barra, en este caso, es que la pelota no llegue a tocar el "suelo" del juego. Cada vez que toca el suelo se pierde. Por tanto, sería deseable, tener alguna manera de controlar el desplazamiento lateral (sin que su coordenada “y” varíe). Con la barra seleccionada pincha en la pestaña Programas: Lo controlaremos con el ratón. Si hacemos clic en la categoría “Sensores” vemos que hay una expresión que nos devuelve la coordenada x del ratón. Así pues, podemos utilizar “fijar x a”, de la categoría “Movimiento”y después en la categoría Sensores, arrastra “Posición x del ratón” y lo introduces en el espacio en blanco redondeado, donde aparece un número. Con esta acción identificamos la coordenada x de la barra, con la coordenada x del ratón. Si esto lo hacemos “por siempre”, tal como sale en la imagen, ya lo tenemos:

Al pulsar en la bandera verde del personaje pelota vemos que esta rebota, observa que puedes mover la barra con el ratón, pero no hay ningún tipo de interacción entre los dos personajes. Veamos cómo conseguir que la pelota rebote, al tocarla barra.

2.3 Efecto rebote

En este caso seleccionamos la pelota, ya que es su programa el que hay que modificar.

Añadiremos la estructura “si...entonces” de la categoría control, dentro de la interacción para hacer algo cuando el balón toque la barra (recuerda que estamos modificando el programa de la pelota).

El programa de la pelota queda así: (ver imagen)

Page 9: PROGRAMAR CON SCRATCH UNIDAD 2: …2.pdf · 2 PROGRAMAR CON SCRATCH UNIDAD 2: PROGRAMACIÓN DE UN JUEG0 1.1 Primer personaje: ^pelota _ En esta unidad nos centraremos en …

9

PROGRAMAR CON SCRATCH

UNIDAD 2: PROGRAMACIÓN DE UN JUEG0

Hacemos clic en “Sensores” y nos fijamos que podemos detectar si un personaje toca con otro con la expresión lógica (fíjate en el contorno angular) “¿tocando…?” (Menú desplegable) Precisamente en este menú podremos elegir con qué otro personaje podemos topar.

Escogemos la opción correcta, que en este caso es “tocando Sprite2”porque la barra se llama así. En el caso de que al objeto le hayamos asignado otro nombre, saldría en el desplegable y lo elegiríamos. Quedaría así

¿Qué debe hacer la pelota cuando toca la barra?: rebotar 180 (grados), menos el ángulo de entrada, que es el mismo, 180, menos la dirección que llevaba la pelota. Este será el ángulo de salida del balón cuando rebote, es decir, el cambio que tenemos que hacer a su dirección para obtener el efecto rebote. Ya sabemos que en la categoría “Operadores” tenemos la operación “restar” y en la categoría “Movimiento” se encuentra la expresión que nos proporciona la dirección del personaje, en este caso la pelota.

Por tanto, el programa, una vez hechos los cambios detallados es este:

Page 10: PROGRAMAR CON SCRATCH UNIDAD 2: …2.pdf · 2 PROGRAMAR CON SCRATCH UNIDAD 2: PROGRAMACIÓN DE UN JUEG0 1.1 Primer personaje: ^pelota _ En esta unidad nos centraremos en …

10

PROGRAMAR CON SCRATCH

UNIDAD 2: PROGRAMACIÓN DE UN JUEG0

Recuerda los valores para las distintas direcciones que pueden tener los personajes:

2.4 Cambio de escenario

Vamos a efectuar unos pequeños cambios para hacer más atractivo el escenario.

Selecciona el escenario. (Izquierda inferior de la pantalla del programa)

Puedes elegir entre los distintos fondos que hay en la galería de Scratch (primer icono del recuadro rojo que ves en la imagen), o bien, dibujar el tuyo propio (segundo icono), importar un fondo distinto del blanco que aparece por defecto (tercer icono) o bien optar por hacer tu propia foto (cuarto icono). Hay un montón de posibilidades. En el caso que nos ocupa el fondo es de la galería y se llama City with watt… Una vez elegido aparece en la pantalla.

En el escenario la verás más o menos así

Page 11: PROGRAMAR CON SCRATCH UNIDAD 2: …2.pdf · 2 PROGRAMAR CON SCRATCH UNIDAD 2: PROGRAMACIÓN DE UN JUEG0 1.1 Primer personaje: ^pelota _ En esta unidad nos centraremos en …

11

PROGRAMAR CON SCRATCH

UNIDAD 2: PROGRAMACIÓN DE UN JUEG0

2.5 Otro personaje

Continuamos complicando, y haciendo más interesante el juego. Queremos saber cuándo la pelota ha pasado la barra verde sin rebotar, es decir, cuando no hemos sido capaces de interceptarla.

Ya sabemos que podemos detectar el contacto entre dos personajes. Así que si has conseguido hacer rebotar la pelota con la barra verde, de la misma manera, puedes crear un nuevo personaje para detectar estas colisiones.

Abrimos, por tanto, el editor de dibujos para crear una barra tan larga como ancho es el escenario. Debe ir de punta a punta. Dado que has creado la pelota y la barra, no vamos a detallar el proceso, pero si tienes algún problema consulta el apartado 2.2 de esta unidad.

Este nuevo personaje, barra amarilla, no necesita programación. Una vez creada, arrástrala (dentro del escenario) hasta la parte inferior, que quede colocada debajo de todo. Ver cómo queda la barra amarilla en la imagen:

Ya tenemos otro personaje, veamos cómo programar la pelota para que al colisionar con la barra amarilla reste puntos o vidas.

2.6 Repetir hasta…

Nuestro próximo propósito es que se acabe el juego. Algo que debe terminar no puede durar “por siempre”.

Page 12: PROGRAMAR CON SCRATCH UNIDAD 2: …2.pdf · 2 PROGRAMAR CON SCRATCH UNIDAD 2: PROGRAMACIÓN DE UN JUEG0 1.1 Primer personaje: ^pelota _ En esta unidad nos centraremos en …

12

PROGRAMAR CON SCRATCH

UNIDAD 2: PROGRAMACIÓN DE UN JUEG0

Así pues, tendremos que cambiar el “por siempre” por alguna estructura que responda a nuestras intenciones. ¿Recuerdas el punto 3.5 de la Unidad 1? Al final de ese punto introducimos el “repetir hasta que”, y es precisamente esto lo que nos hace falta. Pero... ¿hasta cuándo? Pues en nuestro caso, hasta que el balón toque la barra grande (la amarilla). Utilizaremos la misma expresión lógica que utilizamos para detectar el rebote, es decir, “tocando...” “Sensores”, pero con el Sprite3, que es como se llama la barra amarilla. Ya sabemos cómo combinarlo todo, y el programa resultante es este:

Por el momento, el juego termina en cuanto la pelota toca la barra amarilla. Las segundas oportunidades siempre van bien, ¿no? Pues en el próximo tema veremos cómo solucionarlo.

TEMA3: Modificaciones

3.1 Otras variables

Por el momento el juego termina enseguida. Cuando la pelota no es interceptada por la barra pequeña se acabó, por tanto vamos a decirle que queremos tener, lo que normalmente se denominan "vidas”. Permitir unas cuantas equivocaciones.

Esto lo haremos con otra de esas cajitas que llamábamos variables. Con una variable podremos almacenar el número de vidas inicial y restar una vida cada vez que nos equivocamos. Así pues, creamos una nueva variable (categoría “Datos”, botón “Crear una variable”)

Page 13: PROGRAMAR CON SCRATCH UNIDAD 2: …2.pdf · 2 PROGRAMAR CON SCRATCH UNIDAD 2: PROGRAMACIÓN DE UN JUEG0 1.1 Primer personaje: ^pelota _ En esta unidad nos centraremos en …

13

PROGRAMAR CON SCRATCH

UNIDAD 2: PROGRAMACIÓN DE UN JUEG0

Observa que tenemos disponibles las mismas instrucciones sobre la variable “velocidad” pero en esta ocasión son “vidas”.

Para saber a qué variable se refiere cada instrucción, hay que elegir la del menú desplegable. Por ejemplo, si queremos inicializar las 'vidas' en el valor 3, utilizaremos “fijar vidas a 3”.

3.2 Separar “Repetir hasta que…”

Seguimos con el programa de la pelota

Ahora la idea es que lo que hacíamos una sola vez, lo tenemos que repetir tantas veces como “vidas” tengamos. Por tanto, proponemos lo siguiente:

Separar el “repetir hasta que...” que ya tenemos, y añadir otro que la englobe, es decir, que el repetir que ya teníamos, esté dentro del nuevo “repetir hasta que...”

Primero separamos (arrastrando con el ratón) las estructuras tal como ves en la imagen Segundo: añade un nuevo "repetir hasta que..." como muestra la flecha verde

Tercero, Introduce el bloque señalado en rojo dentro del nuevo “repetir hasta que…”

El segundo y tercer paso puedes realizarlos indistintamente

Page 14: PROGRAMAR CON SCRATCH UNIDAD 2: …2.pdf · 2 PROGRAMAR CON SCRATCH UNIDAD 2: PROGRAMACIÓN DE UN JUEG0 1.1 Primer personaje: ^pelota _ En esta unidad nos centraremos en …

14

PROGRAMAR CON SCRATCH

UNIDAD 2: PROGRAMACIÓN DE UN JUEG0

3.3 Final de repetición Vamos a crear la expresión lógica que determina el final del nuevo “repetir hasta que...”. Esta denotará que el valor de la variable “vidas” sea cero. Observa la imagen

1. Introduce de la categoría Operadores la instrucción 2. Introduce dentro de la primera casilla blanca la variable “Vidas”

Esta es la estructura del programa. Pruébalo por favor y verás que no funciona, intenta averiguar el/los fallos antes se seguir.

3.4 Errores

¿Encontraste los errores? Hay dos

1. Primero, la variable “vidas” no cambia nunca. ¡Esto es absurdo! Si tenemos una repetición que

depende del valor de una variable, el valor de esta debe cambiar dentro de la repetición, en

otro caso será imposible que la condición de terminación del “repetir hasta...que” ¿se

satisfaga nunca?... Por lo que deberemos añadir la instrucción “cambiar vidas por -1” e

insertarla en el lugar que se indica en la imagen.

2. Segundo, las inicializaciones deben ejecutarse cada vez que empezamos el juego con vida

nueva, así pues debemos mover de lugar el ”ir a x 0 y 175” y apuntar en dirección… como se

muestra en 3.5 Estructura final

Page 15: PROGRAMAR CON SCRATCH UNIDAD 2: …2.pdf · 2 PROGRAMAR CON SCRATCH UNIDAD 2: PROGRAMACIÓN DE UN JUEG0 1.1 Primer personaje: ^pelota _ En esta unidad nos centraremos en …

15

PROGRAMAR CON SCRATCH

UNIDAD 2: PROGRAMACIÓN DE UN JUEG0

“Cambiar vidas por -1”

En la siguiente ventana se muestran todos los cambios

3.5 Estructura final:

Esta figura ilustra las modificaciones

Page 16: PROGRAMAR CON SCRATCH UNIDAD 2: …2.pdf · 2 PROGRAMAR CON SCRATCH UNIDAD 2: PROGRAMACIÓN DE UN JUEG0 1.1 Primer personaje: ^pelota _ En esta unidad nos centraremos en …

16

PROGRAMAR CON SCRATCH

UNIDAD 2: PROGRAMACIÓN DE UN JUEG0

3.6 Resumen

Por el momento, el juego tiene esta estructura con dos programas: el programa de la pelota y el programa de la barra corta.

1. Tenemos tres personajes y un fondo. De los tres personajes, dos, la pelota y la barra corta, tienen asociado un programa que gobierna su comportamiento. Otro, la barra larga, es pasivo y el único papel que juega es el de ser detectado.

2. El grueso del programa está en la lógica de la pelota. Es la pelota el personaje activo que más decisiones debe tomar.

3. El programa de la pelota se compone de:

Inicialización de variables ('vidas' y 'velocidad'). Nótese que 'vidas' es modificada mientras el programa se ejecuta. En cambio, el valor de 'velocidad' se fija al principio y ya no se toca más.

Una iteración o repetición (a veces hablamos también de "bucle") que controla cuántas vidas nos quedan. A cada vuelta de este bucle, disminuye el valor de “vidas”, asegurándonos que, después de un cierto número de vidas (el valor inicial de la variable 'vidas'), el bucle se acabará.

Dentro de la repetición mencionada en el punto anterior, tenemos una inicialización de partida, colocando la pelota en su posición de comienzo del juego.

Y también otro bucle, que esencialmente mueve la pelota a la velocidad que marca la variable “velocidad', y controla si tocamos la barra corta o un borde. Si tocamos la barra corta rebotamos calculando nosotros el rebote, y si toca el borde rebota gracias a la instrucción correspondiente.

Page 17: PROGRAMAR CON SCRATCH UNIDAD 2: …2.pdf · 2 PROGRAMAR CON SCRATCH UNIDAD 2: PROGRAMACIÓN DE UN JUEG0 1.1 Primer personaje: ^pelota _ En esta unidad nos centraremos en …

17

PROGRAMAR CON SCRATCH

UNIDAD 2: PROGRAMACIÓN DE UN JUEG0

TEMA 4: Mejoras y finalización del juego

4.1 Añadir sonido

Podemos añadir algún sonido para comunicar que el juego ha terminado. Con la pelota seleccionada, vamos a la pestaña 'Sonidos' y hacemos clic en “Grabar”.

Se nos ha creado un nuevo sonido que está vacío. Pulsando sonido nuevo (micrófono de la imagen)

puedes grabar lo que quieras por ejemplo, juego terminado” y quedará registrado. A continuación

cambiamos el nombre (por ejemplo “terminado”) del sonido recién grabado.

Ahora añadiremos al final de nuestro programa la instrucción "tocar sonido" y elegimos, del menú

desplegable, el nombre del sonido recién grabado, que en este caso es el de la imagen (terminado)

Page 18: PROGRAMAR CON SCRATCH UNIDAD 2: …2.pdf · 2 PROGRAMAR CON SCRATCH UNIDAD 2: PROGRAMACIÓN DE UN JUEG0 1.1 Primer personaje: ^pelota _ En esta unidad nos centraremos en …

18

PROGRAMAR CON SCRATCH

UNIDAD 2: PROGRAMACIÓN DE UN JUEG0

4.2 Control de la velocidad

¿No te parece que, cuando pierde una vida va muy rápido e inmediatamente empieza la siguiente? Para solucionarlo, en la categoría control tenemos la instrucción “espera... segundos”.

Podemos ponerla justo después de las inicializaciones de la pelota y antes de la repetición “repite hasta tocando Sprite3”, Es decir, debe estar dentro del repetir más exterior pero fuera del repetir más interior. Con un segundo de espera hay de sobra.

4.3 Añadir texto

El editor de dibujos, nos permite añadir el texto que queramos así que pincha en dibujar nuevo objeto y añade el texto que quieras. Escribe lo que quieras, como ejemplo hemos puesto GAME OVER. Recuerda que puedes modificarlo pinchando en la pestaña disfraces.

Pero ahora, cuando jugamos, el texto escrito anteriormente, sale permanentemente y debería desaparecer al empezar y cuando el juego termina. Tenemos que hacer el programa del texto por tanto, pincha en la pestaña programas del personaje texto y en la categoría Control arrastra "al presionar" seguidamente en la categoría “Apariencia” verás dos instrucciones “esconde” y “muestra”. Arrastra "esconder"

*

*

Page 19: PROGRAMAR CON SCRATCH UNIDAD 2: …2.pdf · 2 PROGRAMAR CON SCRATCH UNIDAD 2: PROGRAMACIÓN DE UN JUEG0 1.1 Primer personaje: ^pelota _ En esta unidad nos centraremos en …

19

PROGRAMAR CON SCRATCH

UNIDAD 2: PROGRAMACIÓN DE UN JUEG0

Con estas órdenes, en cuanto se ejecuta el programa, le decimos al texto que no salga en pantalla, sin embargo, cuando termina no aparece! Así pues, hay que seguir modificando.

No sé si te has dado cuenta pero quién detecta cuándo se acaba el programa es la pelota, en cambio quien debe aparecer cuando el juego se acaba es el texto "GAME OVER".

¿Cómo le puede decir la pelota al texto, que el juego ha terminado?

Con Scratch los personajes pueden enviar mensajes a todos los otros personajes. Seleccionamos la pelota (si no lo estaba) y hacemos clic en la categoría 'Eventos'. Allí podemos ver la instrucción “enviar mensaje1” o “enviar nuevo mensaje” menú desplegable.

Arrastramos la instrucción hasta la zona de programas de la pelota y creamos un “nuevo mensaje”:

Podemos escribir, por ejemplo, "fin del juego". Una vez lo hayamos hecho, añadimos la instrucción “enviar fin del juego” al final del programa de la pelota, como última instrucción del programa (debajo de la instrucción “enviar sonido terminado”).

Esta instrucción envía a todos los personajes el mensaje "fin del juego". Ahora bien, habrá personajes que harán caso de este mensaje, y habrá otros que no.

Uno de los personajes que debería hacer caso es el texto "GAME OVER". Al recibir este mensaje, el texto debe hacerse visible. ¡Lo tenemos fácil!...

Selecciona el texto y en la ventana programas añade, de la categoría “Eventos” la instrucción “al recibir” (menú desplegable) elige “Fin del juego”. Seguidamente y desde la categoría “Apariencia” arrastra “mostrar”, la colocas debajo de “al recibir” y… ¡listo!

Los programas asociados al texto "Game Over" son:

Page 20: PROGRAMAR CON SCRATCH UNIDAD 2: …2.pdf · 2 PROGRAMAR CON SCRATCH UNIDAD 2: PROGRAMACIÓN DE UN JUEG0 1.1 Primer personaje: ^pelota _ En esta unidad nos centraremos en …

20

PROGRAMAR CON SCRATCH

UNIDAD 2: PROGRAMACIÓN DE UN JUEG0

Probablemente estarás pensando pero... ¿cómo? ¿Dos programas para un solo personaje? Ten en cuenta que cada uno de estos programas se activará en determinadas condiciones. Uno (“esconde”) cuando se pulse la bandera verde, otro “muestra” cuando se reciba el mensaje "fin del juego". Son situaciones diferentes que no interfieren entre ellas. Así pues, ningún problema. Este mecanismo que tiene Scratch de enviar mensajes entre personajes lo veremos a menudo en las próximas unidades. 4.4 Estructura final del juego: Sólo nos queda ver cómo quedarán definitivamente los programas asociados a cada uno de los personajes:

Page 21: PROGRAMAR CON SCRATCH UNIDAD 2: …2.pdf · 2 PROGRAMAR CON SCRATCH UNIDAD 2: PROGRAMACIÓN DE UN JUEG0 1.1 Primer personaje: ^pelota _ En esta unidad nos centraremos en …

21

PROGRAMAR CON SCRATCH

UNIDAD 2: PROGRAMACIÓN DE UN JUEG0

Ejercicios de ña Unidad 2 Te presentamos 2 ejercicios. Es conveniente que los realices todos ya que con ellos afianzarás los

conocimientos que has adquirido en esta unidad. De los 3 elige uno, haz un pantallazo de los programas

asociados a cada personaje, lo pegas en un documento word o pdf y envíalo a la tutora para su evaluación.

2.1 Modificar un programa conocido

A partir de este programa (visto en el apartado 1.5 de esta unidad 2) podemos pensar en distintas variable

Intenta poner un valor inicial alto (100 por ejemplo) y que la pelota vaya cada vez más despacio. ¿Qué pasaría cuando la velocidad empezara a tomar valores negativos?

¿Podrías resolver el problema anterior? Es decir, ¿cómo podrías evitar que la pelota se mueva si la velocidad toma valores negativos?

Si te decides por enviar este ejercicio, el pantallazo debe reflejar la modificación del programa de manera que la pelota tenga una velocidad inicial de 100, vaya disminuyendo poco a poco y, al llegar a cero, se detenga.

2.2 Construcción de un juego clásico

Te proponemos que hagas tu versión del juego. Debe funcionar y puedes hacer las variaciones que quieras.

Este puede ser un ejemplo que puedes mejorar a tu gusto. ¿Cuantos

personajes deberás crear?