PROGRAMACIÓN CON SCRACTH (III)

Febrero Figura 1. Versión de Scratch Desktop 3.5

Febrero Figura 2

Autor:  Agustin Gonzalez Redondo. M Rocío García de la Fuente.

 

Vamos a realizar un nuevo programa empleando para ello la versión 3.5 de Scratch Desktop, descargable desde su página web. Esta versión, más actualizada que la 2.0 posee las mismas utilidades que la versión anterior (figura 2), es decir:

  • Herramientas de movimiento: permite desplazar al personaje.

 

  • Herramientas de apariencia: cambiar el aspecto de un objeto o entablar una conversación.

 

  • Herramientas de sonido: incluye efectos, música, etc.

 

  • Eventos: Indican cómo y cuándo iniciar la acción y permite interactuar a través del teclado o el ratón.

 

  • Sensores: Relaciona al objeto con su entorno (colores, objetos), e incluso con periféricos como el ratón o el teclado.

 

  • Operadores: herramientas para realizar operaciones matemáticas.

 

  • Variables: permite designar una cantidad susceptible de tomar distintos valores numéricos.

 

  • Mis bloques: funciones creadas por el programador con un cometido específico.

Tras este breve resumen, esta nueva versión incorpora otras extensiones que amplían las posibilidades de programación. Para acceder a ellas existe un botón en la parte inferior izquierda (figura 3) que abre esta nuevas posibilidades (figura 4): Instrumentos musicales, lápiz, sensor de video, traductor, e incluso la posibilidad de programar hardware externo como micro:bit o Lego Mindstorm entre otros.

 

Febrero Figura 3 Febrero Figura 4. Algunas de la nuevas herramientas que incorpora la versión 3

Una vez realizado este breve paseo por la nueva interfaz de la aplicación comenzaremos con la programación, para ello partiremos inicialmente de la animación realizada en el anterior artículo relacionado con Scratch, «Programación con Stracth (II)», donde nuestro personaje Caveman, con licencia CC0 (Creative Commons), corría por el bosque (figura 5).

Febrero Figura 5. Caveman

Para realizarlo, recordamos haber tomado el sprite “running-caveman” realizado por DanielSiegmund.nl (figura 6), recogido por separado, mediante un programa de fotografía digital como Gimp, cada una de las imágenes, y añadido dichas imágenes por orden al conjunto de disfraces del personaje (figura 7).

Febrero Figura 6. spritesheet caveman Febrero Figura 7

Eliminamos para este programa los dos objetos que simulaban el desplazamiento por el bosque, y creamos un nuevo objeto con el editor del que dispone Scratch 3.5. (figura 8). Recortamos 4 rectángulos del color que más nos guste y los colocamos en forma de escalera. Escalera por la que bajará nuestro personaje.

Febrero Figura 8

Para finalizar, añadimos uno de los fondos predeterminados por la aplicación, en este caso un cielo azul, teniendo cuidado de que los colores de la escalera y los del fondo no se confundan (figura 9).

Febrero Figura 9

Una vez tenemos a nuestro personaje colocado frente a la escalera que desea bajar, comienza el ejercicio de programación. Para ello vamos a utilizar una de las principales características de Scracth: la posibilidad de crear rutinas o programas que se ejecutan al mismo tiempo en paralelo, y que permiten simplificar notablemente la programación, ya que el programa se divide en diferentes rutinas sencillas de entender y programar incluso por programadores noveles.

Comenzamos con la animación de nuestro personaje, de forma similar a como ya hiciéramos en el anterior artículo realizamos un subprograma para que los disfraces vayan pasando de uno a otro dando la sensación de movimiento (figura 10). Un movimiento más rápido requiere tiempos de espera más cortos, en este caso 0,05 segundos de transición entre disfraces. Además, en este caso se coloca el objeto en una posición inicial (200,200) y se fuerza a permanecer en la primera capa para estar siempre visible durante todo el desarrollo de la acción.

Febrero Figura 10

La segunda rutina programada se va a emplear para girar el objeto de forma continuada (figura 11). Para poder controlar mejor la velocidad de giro se crea una variable denominada «w», que puede ser susceptible de ser modificada en el transcurso del programa, y que inicialmente toma el valor 10.

Febrero Figura 11

El desplazamiento horizontal del personaje tiene lugar a una velocidad constante, para lo que se crea la variable «vel_x» (inicialmente toma valor 2), por si fuera necesario modificarla con posterioridad. El programa (figura 12) desplaza en línea recta nuestro muñeco, cuando alcanza el extremo final del escenario vuelve de nuevo al inicio, en un bucle de repetición infinito, para lo que emplea un condicional que pregunta constantemente por la posición en la que se encuentra nuestro personaje.

Febrero Figura 12

La más complicada de las rutinas empleadas va a gestionar el movimiento vertical del objeto, para simular su caída será necesario incluir dos nuevas variables: «vel_x» cuyo valor inicial va a ser 0, y «drag» variable que modificará el valor de la velocidad de desplazamiento vertical haciéndola cada vez más pequeña (números negativos indican caída) y cuyo valor en todo el programa será -1.

La relación entre las variables viene dada por la siguiente ecuación: «Vel_y=vel_y+drag«, ecuación que se programa fácilmente empleando los bloques presentes en la herramienta Operadores del programa. El resto es tan sencillo como modificar la «posición y» por el valor de la variable «vel_y», que se va haciéndolo mayor conforme transcurre el programa para que recree la caída de un objeto, y controlar su posición de tal forma que al superar el valor -180 vuelva a la zona superior de la escena (figura 13).

Febrero Figura 13

Una vez programada la caída de un cuerpo, si no se incluye ninguna nueva condición se produce una caída ininterrumpida, sin embargo, y como lo que se desea es simular una caída por las escaleras de forma ininterrumpida, es necesario incluir una nueva condición para que esto ocurra, su programación es sencilla y consta de un bucle de repetición y un condición para determinar el momento en el que se produce el contacto de objeto con la escalera, momento en el cual cambiamos el valor de vel_y a un valor positivo, y …. ya tenemos un rebote, así de fácil (figura 14).

Febrero Figura 15

Y para finalizar, unos cuantos efectos, aquí os dejamos un ejemplo de lo que le puede pasar a un cavernícola si se cae por las escaleras (figuras 15 y 16), el resto lo dejamos a vuestra imaginación.

Febrero Figura 16

AUTORES: M. ROCÍO GARCÍA DE LA FUENTE Y AGUSTÍN GONZÁLEZ REDONDO

Robótica-Programación

Introducción a la física de partículas y observación (Muon detector)

AUTORES: M. ROCÍO GARCÍA DE LA FUENTE Y AGUSTÍN GONZÁLEZ REDONDO. Para comenzar este artículo es preciso realizar una breve introducción al modelo estándar de partículas, para intentar comprender el conocimiento científico que yace detrás del proyecto que trataremos de explicar. El modelo standard (fuente CERN) figura 1. Desde la década de 1930 los descubrimientos […]

Leer más
Robótica-Programación

Control de motores Arduino (IV). Motores Paso a Paso

AUTORES: M. ROCÍO GARCÍA DE LA FUENTE Y AGUSTÍN GONZÁLEZ REDONDO El segundo tipo de motores capaces de controlar su posición de forma interna, los servomotores fueron los primeros que hemos tratado en anteriores artículos, son los motores paso a paso (figura 4. Varios modelos de motores paso a paso), dispositivos ampliamente empleados en impresoras […]

Leer más
Robótica-Programación

Python ·3D con Processing

AUTORES: M. ROCÍO GARCÍA DE LA FUENTE Y AGUSTÍN GONZÁLEZ REDONDO. Hoy volvemos de nuevo a trabajar con Python, en este caso, añadimos nuevas posibilidades a una IDE que ya conocemos, Processing, además de trabajar con este lenguaje de programación realizaremos una primera animación en 3D. Para comenzar debemos añadir un nuevo modo de trabajo […]

Leer más
MENÚ
Revista