SCRATCHEANDO POR LA VIDA


INTRODUCCIÓN

En esta actividad se aprenderá a programar con Scratch 3.0, una herramienta gratuita que permite crear videojuegos, animaciones e historias mediante bloques de colores.

Se realizarán diez retos progresivos y resueltos. En cada uno se explicará qué se quiere conseguir, qué bloques se necesitan, dónde encontrarlos y cómo conectarlos.

El objetivo será copiar los programas, ejecutarlos, comprender su funcionamiento y experimentar modificando sus instrucciones.

¿Cómo se trabajará?

  1. Se leerá el objetivo del reto.
  2. Se localizarán los bloques por su categoría y color.
  3. Se reproducirá la cadena de programación.
  4. Se ejecutará para comprobar el resultado.
  5. Se modificarán algunos valores para experimentar.

1. COLORES DE LOS BLOQUES DE SCRATCH

CategoríaColorFunción
Movimiento🔵 AzulDesplazar personajes y cambiar coordenadas.
Apariencia🟣 MoradoCambiar disfraces, fondos y mensajes.
Sonido🩷 RosaReproducir sonidos y efectos.
Eventos🟡 AmarilloIniciar acciones y enviar mensajes.
Control🟠 NaranjaRepetir instrucciones y establecer condiciones.
Sensores🔵 Azul claroDetectar teclas y contactos.
Operadores🟢 VerdeComparar valores y realizar operaciones.
Variables🟠 Naranja oscuroGuardar puntuaciones, vidas y otros datos.

2. PREPARACIÓN DEL VIDEOJUEGO

Se abrirá el editor de Scratch y se prepararán los siguientes elementos.

ElementoNombreFunción
ProtagonistaGatoPersonaje controlado por el jugador.
ColeccionableEstrellaObjeto que proporcionará puntos.
PeligroBolaObstáculo que quitará vidas.
ObjetivoMetaPermitirá terminar una fase.
FondosBosque, Noche, Victoria, DerrotaEscenarios del videojuego.

Se utilizarán estos nombres para que coincidan con los ejemplos de programación.

Las instrucciones escritas debajo de un bloque de control, con mayor sangría, se colocarán dentro de él. La palabra fin indicará el cierre de un bloque, pero no existe como bloque independiente en Scratch.

3. LOS DIEZ RETOS DE PROGRAMACIÓN

RETO 1. Crear y guardar un programa

Objetivo: aprender a ejecutar instrucciones mediante un evento.

Objeto que se programará: Gato.

Cadena de programación

⚑ al hacer clic en la bandera verde

decir [¡Hola! Estoy programando] durante (2) segundos

BloqueCategoríaFunción
al hacer clic en la bandera verde🟡 EventosIniciará el programa.
decir [...] durante (...) segundos🟣 AparienciaMostrará un mensaje.

Resultado esperado: al pulsar la bandera verde, el Gato mostrará un mensaje.

Se guardará el proyecto desde el menú Archivo → Guardar en tu ordenador, o en una cuenta autorizada.

RETO 2. Diseñar el mundo del videojuego

Objetivo: utilizar coordenadas, posiciones y apariencia.

Objeto que se programará: Gato.

Cadena de programación

al recibir [Iniciar]

mostrar

ir a x: (0) y: (-100)

fijar tamaño a (70) %

apuntar en dirección (90)

BloqueCategoríaFunción
al recibir [Iniciar]🟡 EventosActivará la cadena cuando se reciba el mensaje.
mostrar🟣 AparienciaHará visible al personaje.
ir a x: (...) y: (...)🔵 MovimientoEstablecerá su posición.
fijar tamaño a (...) %🟣 AparienciaCambiará el tamaño.
apuntar en dirección (...)🔵 MovimientoEstablecerá su orientación.

Se creará un mensaje llamado Iniciar y se añadirá temporalmente en el Escenario:

al hacer clic en la bandera verde
enviar [Iniciar]

Ambas instrucciones se encontrarán en 🟡 Eventos.

Resultado esperado: al comenzar el programa, el Gato aparecerá en la posición establecida.

RETO 3. Dar vida a la historia

Objetivo: programar mensajes, animaciones y pausas.

Objeto que se programará: Gato.

Cadena de programación

al recibir [Iniciar]

decir [¡Bienvenido a la aventura!] durante (2) segundos

cambiar disfraz a [disfraz1]

esperar (0.3) segundos

siguiente disfraz

decir [Recoge 5 estrellas y llega a la meta] durante (3) segundos

BloqueCategoríaFunción
al recibir [Iniciar]🟡 EventosActivará la presentación.
decir [...] durante (...) segundos🟣 AparienciaMostrará mensajes.
cambiar disfraz a [...]🟣 AparienciaCambiará el aspecto.
esperar (...) segundos🟠 ControlIntroducirá una pausa.
siguiente disfraz🟣 AparienciaMostrará otro disfraz.

Resultado esperado: el Gato presentará el juego mediante mensajes y una pequeña animación.

RETO 4. Controlar al protagonista

Objetivo: utilizar el teclado, los sensores, los operadores y los bucles.

Objeto que se programará: Gato.

Se creará la variable Estado para todos los objetos y se establecerá su valor en jugando al comenzar.

Cadena de programación

al hacer clic en la bandera verde
por siempre
    si <(Estado) = [jugando]> entonces

        si <<¿tecla [flecha derecha] presionada?> y <(posición x) < (220)>> entonces
            cambiar x por (5)
        fin

        si <<¿tecla [flecha izquierda] presionada?> y <(posición x) > (-220)>> entonces
            cambiar x por (-5)
        fin

        si <<¿tecla [flecha arriba] presionada?> y <(posición y) < (160)>> entonces
            cambiar y por (5)
        fin

        si <<¿tecla [flecha abajo] presionada?> y <(posición y) > (-160)>> entonces
            cambiar y por (-5)
        fin
    fin
BloqueCategoríaFunción
al hacer clic en la bandera verde🟡 EventosIniciará las instrucciones.
por siempre🟠 ControlRepetirá el programa continuamente.
si ... entonces🟠 ControlComprobará una condición.
¿tecla [...] presionada?🔵 SensoresDetectará las teclas.
y, <, >, =🟢 OperadoresCombinarán y compararán condiciones.
posición x, posición y🔵 MovimientoConsultarán las coordenadas.
cambiar x por, cambiar y por🔵 MovimientoDesplazarán el personaje.
Estado🟠 VariablesIndicará si se está jugando.

Resultado esperado: el personaje responderá a las cuatro flechas y no saldrá de los límites programados.

RETO 5. Recoger objetos

Objetivo: detectar contactos y modificar la posición de los objetos.

Objeto que se programará: Estrella.

Cadena A. Preparación

al recibir [Iniciar]
mostrar
ir a x: (número al azar entre (-190) y (190))
     y: (número al azar entre (-140) y (140))

Cadena B. Recogida

al hacer clic en la bandera verde
por siempre
    si <(Estado) = [jugando]> entonces
        si <¿tocando [Gato]?> entonces
            esconder
            esperar (0.2) segundos
            ir a x: (número al azar entre (-190) y (190))
                 y: (número al azar entre (-140) y (140))
            mostrar
            esperar hasta que <no <¿tocando [Gato]?>>
        fin
    fin
BloqueCategoríaFunción
al recibir, al hacer clic🟡 EventosActivarán las cadenas.
mostrar, esconder🟣 AparienciaCambiarán la visibilidad.
ir a x: ... y: ...🔵 MovimientoModificará la posición.
número al azar entre🟢 OperadoresGenerará coordenadas aleatorias.
¿tocando [Gato]?🔵 SensoresDetectará el contacto.
por siempre, si, esperar hasta que🟠 ControlGestionarán el comportamiento.
no🟢 OperadoresInvertirá una condición.

Resultado esperado: al tocar la estrella, esta desaparecerá y aparecerá en otra posición.

RETO 6. Programar la puntuación

Objetivo: utilizar variables como contadores.

Se creará la variable Puntos para todos los objetos.

Cadena A. Escenario

Se sustituirá la cadena temporal de inicio por:

al hacer clic en la bandera verde
fijar [Puntos] a (0)
fijar [Estado] a [jugando]
enviar [Iniciar]

Cadena B. Estrella

Se sustituirá la cadena de recogida anterior por:

al hacer clic en la bandera verde
por siempre
    si <(Estado) = [jugando]> entonces
        si <¿tocando [Gato]?> entonces
            cambiar [Puntos] por (1)
            esconder
            esperar (0.2) segundos
            ir a x: (número al azar entre (-190) y (190))
                 y: (número al azar entre (-140) y (140))
            mostrar
            esperar hasta que <no <¿tocando [Gato]?>>
        fin
    fin
BloqueCategoríaFunción
fijar [Puntos] a (0)🟠 VariablesReiniciará el marcador.
cambiar [Puntos] por (1)🟠 VariablesSumará un punto.
¿tocando [Gato]?🔵 SensoresDetectará la recogida.
si ... entonces🟠 ControlComprobará la condición.
enviar [Iniciar]🟡 EventosPreparará los objetos.

Se activará la casilla de visualización de la variable Puntos.

Resultado esperado: la puntuación comenzará en cero y aumentará al recoger estrellas.

RETO 7. Incorporar peligros

Objetivo: programar obstáculos móviles y penalizaciones.

Objeto que se programará: Bola.

Se creará la variable Vidas para todos los objetos y se inicializará en 3 desde el Escenario.

Cadena A. Preparación

al recibir [Iniciar]
mostrar
ir a x: (-170) y: (70)
apuntar en dirección (90)
fijar estilo de rotación a [en todas direcciones]

Cadena B. Movimiento y colisión

al hacer clic en la bandera verde
por siempre
    si <(Estado) = [jugando]> entonces
        mover (5) pasos
        si toca un borde, rebotar

        si <¿tocando [Gato]?> entonces
            cambiar [Vidas] por (-1)
            esperar hasta que <no <¿tocando [Gato]?>>
        fin
    fin
BloqueCategoríaFunción
mover (5) pasos🔵 MovimientoDesplazará el obstáculo.
si toca un borde, rebotar🔵 MovimientoCambiará la dirección al llegar al borde.
apuntar en dirección🔵 MovimientoEstablecerá su orientación.
¿tocando [Gato]?🔵 SensoresDetectará la colisión.
cambiar [Vidas] por (-1)🟠 VariablesRestará una vida.
por siempre, si, esperar hasta que🟠 ControlControlarán el comportamiento.

Resultado esperado: la Bola se moverá automáticamente y el protagonista perderá una vida al tocarla.

RETO 8. Programar victoria y derrota

Objetivo: utilizar condiciones y mensajes para finalizar la partida.

Se crearán los mensajes Ganar y Perder, además de la variable Fase.

Cadena A. Escenario

Se actualizará la cadena de inicio:

al hacer clic en la bandera verde
fijar [Puntos] a (0)
fijar [Vidas] a (3)
fijar [Fase] a (1)
fijar [Estado] a [jugando]
cambiar fondo a [Bosque]
enviar [Iniciar]

Cadena B. Meta

al recibir [Iniciar]
mostrar
ir a x: (190) y: (120)

Cadena C. Victoria

En Meta:

al hacer clic en la bandera verde
por siempre
    si <(Estado) = [jugando]> entonces
        si <<(Puntos) >= (5)> y <¿tocando [Gato]?>> entonces
            fijar [Estado] a [finalizando]
            enviar [Ganar]
        fin
    fin

Cadena D. Derrota

En el Escenario:

al hacer clic en la bandera verde
por siempre
    si <(Estado) = [jugando]> entonces
        si <(Vidas) <= (0)> entonces
            fijar [Estado] a [finalizando]
            enviar [Perder]
        fin
    fin

Cadena E. Resultados

En el Escenario:

al recibir [Ganar]
fijar [Estado] a [ganado]
cambiar fondo a [Victoria]
al recibir [Perder]
fijar [Estado] a [perdido]
cambiar fondo a [Derrota]

En Gato, Estrella, Bola y Meta se añadirán también estas dos cadenas:

al recibir [Ganar]
esconder
al recibir [Perder]
esconder
BloqueCategoríaFunción
si ... entonces🟠 ControlComprobará las condiciones.
>=, <=, y🟢 OperadoresCompararán y combinarán condiciones.
Puntos, Vidas, Estado🟠 VariablesGuardarán información del juego.
¿tocando [Gato]?🔵 SensoresDetectará la llegada a la Meta.
enviar [Ganar], enviar [Perder]🟡 EventosComunicarán el resultado.
al recibir [...]🟡 EventosActivará las instrucciones finales.
cambiar fondo a [...], esconder🟣 AparienciaMostrarán el final de la partida.

Resultado esperado: se ganará al reunir cinco puntos y llegar a la Meta. Se perderá al agotar las vidas.

RETO 9. Crear una segunda fase

Objetivo: utilizar variables y condiciones para aumentar la dificultad.

Cadena A. Meta

Se sustituirá la condición de victoria anterior por:

al hacer clic en la bandera verde
por siempre
    si <(Estado) = [jugando]> entonces
        si <<(Puntos) >= (5)> y <¿tocando [Gato]?>> entonces
            fijar [Estado] a [transición]

            si <(Fase) = (1)> entonces
                enviar [Fase2]
            si no
                enviar [Ganar]
            fin
        fin
    fin

Cadena B. Escenario

al recibir [Fase2]
fijar [Estado] a [preparando]
fijar [Fase] a (2)
fijar [Puntos] a (0)
cambiar fondo a [Noche]
enviar [Iniciar] y esperar
fijar [Estado] a [jugando]

Cadena C. Bola

Se sustituirá la cadena de movimiento anterior por:

al hacer clic en la bandera verde
por siempre
    si <(Estado) = [jugando]> entonces
        si <(Fase) = (1)> entonces
            mover (5) pasos
        si no
            mover (9) pasos
        fin

        si toca un borde, rebotar

        si <¿tocando [Gato]?> entonces
            cambiar [Vidas] por (-1)
            esperar hasta que <no <¿tocando [Gato]?>>
        fin
    fin
BloqueCategoríaFunción
si ... entonces, si ... si no🟠 ControlPermitirán elegir entre comportamientos.
Fase, Puntos, Estado🟠 VariablesControlarán el estado de la partida.
enviar [Fase2]🟡 EventosIniciará la segunda fase.
enviar [...] y esperar🟡 EventosEsperará a que termine la preparación.
cambiar fondo a [Noche]🟣 AparienciaMostrará otro escenario.
mover (...) pasos🔵 MovimientoPermitirá cambiar la velocidad.

Resultado esperado: se accederá a una segunda fase con otro escenario y un peligro más rápido.

RETO 10. Completar y reiniciar el videojuego

Objetivo: integrar todas las funciones y preparar un juego completo.

Cadena A. Inicio

En el Escenario se sustituirá la cadena de inicio anterior por:

al hacer clic en la bandera verde
enviar [Reiniciar]

Cadena B. Reinicio

En el Escenario:

al recibir [Reiniciar]
fijar [Estado] a [preparando]
fijar [Puntos] a (0)
fijar [Vidas] a (3)
fijar [Fase] a (1)
cambiar fondo a [Bosque]
enviar [Iniciar] y esperar
fijar [Estado] a [jugando]

Cadena C. Tecla de reinicio

En el Escenario:

al presionar tecla [r]
enviar [Reiniciar]

Cadena D. Sonidos

En Estrella, después de sumar un punto:

iniciar sonido [Pop]

En Bola, después de restar una vida:

iniciar sonido [Boing]

Se seleccionarán previamente esos sonidos u otros equivalentes en la biblioteca.

BloqueCategoríaFunción
al presionar tecla [r]🟡 EventosDetectará la tecla de reinicio.
enviar [Reiniciar]🟡 EventosActivará el reinicio.
al recibir [Reiniciar]🟡 EventosEjecutará la preparación.
fijar [...] a [...]🟠 VariablesRestaurará los valores iniciales.
cambiar fondo a [...]🟣 AparienciaRecuperará el escenario inicial.
iniciar sonido [...]🩷 SonidoReproducirá un efecto.

Comprobaciones finales

Se añadirá una pantalla o mensaje con las instrucciones de juego y se realizarán tres pruebas.

PruebaComprobación
1. Funcionamiento básicoMovimiento, recogida de objetos y puntuación.
2. ReglasColisiones, vidas, victoria, derrota y segunda fase.
3. ReinicioRecuperación del escenario, personajes, variables y fase inicial.

Resultado esperado: se dispondrá de un videojuego con movimiento, puntuación, peligros, dos fases, victoria, derrota, sonidos y reinicio.

4. RESUMEN DE APRENDIZAJE

RetoAprendizaje principalCategorías
1Crear y ejecutar programas🟡 Eventos · 🟣 Apariencia
2Posiciones y personajes🔵 Movimiento · 🟣 Apariencia
3Mensajes y animaciones🟣 Apariencia · 🟠 Control
4Control con el teclado🔵 Movimiento · 🔵 Sensores · 🟢 Operadores
5Recogida de objetos🔵 Sensores · 🟠 Control
6Variables y puntuación🟠 Variables
7Peligros y penalizaciones🔵 Movimiento · 🔵 Sensores · 🟠 Variables
8Condiciones de victoria y derrota🟢 Operadores · 🟠 Control · 🟡 Eventos
9Segunda fase y dificultad🟠 Variables · 🟡 Eventos
10Reinicio y sonidos🟡 Eventos · 🩷 Sonido · 🟠 Variables

5. ENTREGA Y REFLEXIÓN

Una vez realizados los diez retos, se guardará el proyecto en formato .sb3.

Nombre del archivo: Apellido_Nombre_Scratcheando.sb3

Se responderá brevemente:

  1. ¿Qué bloques han resultado más útiles?
  2. ¿Qué instrucciones han sido más difíciles de comprender?
  3. ¿Qué se cambiaría para desarrollar un videojuego diferente?

SCRATCHEANDO POR LA VIDA — Copia, ejecuta, comprende y transforma.

Para pegarlo en Vecindae: selecciona el texto de esta respuesta, cópialo y utiliza el pegado normal (Ctrl + V) en el editor visual de WordPress, no en el editor de código ni con Ctrl + Mayús + V.

Las tablas, títulos, negritas y emojis de colores son los elementos que mejor suelen conservarse. Los fondos coloreados de las cadenas de bloques pueden perderse, dependiendo de cómo WordPress procese el contenido copiado; no se puede garantizar su conservación mediante el pegado directo desde el chat.

PROYECTOS

SAM-CRAFT

UTILIZA LLOS CONTROLES INDICADOS EN EL JUEGO PARA MOVERTE


SAM & FURIOUS

UTILIZA LAS FLECHAS PARA MOVERTE


STAR WARS. LA VENGANZA DE LOS SAMS

UTILIZA LAS FLECHAS PARA MOVERTE Y EL ESPACIO PARA DISPARAR


2001. A SAM ODYSSEY

UTILIZA EL RATÓN PARA MOVERTE


INVADING SAM-TURNO

UTILIZA LAS FLECHAS PARA MOVERTE Y EL ESPACIO PARA DISPARAR


BANCO DE PROYECTOS 2023-24

Ir al contenido