El proyecto Scratch de los viernes (VII): la gravedad en Scratch

0
Manzanas con gravedad en Scratch

La gravedad en Scratch es uno de los problemas más recurrentes de la programación, y aunque la solución es relativamente sencilla – para un adulto -, a los chavales les cuesta entender algunos conceptos básicos y fundamentales. Sin embargo, el punto curioso es que todos saben cómo funciona.

Si quieres crear un proyecto en Scratch con gravedad, puedes hacerlo de muchas formas. Algunas más complejas con fórmulas matemáticas tremendamente reales, y otras más sencillas y aptas para todas las edades. Hoy vamos nuestro proyecto va sobre esto: la gravedad en Scratch y muchas ideas que se pueden hacer con ella.

¿Qué es la gravedad?

Podemos aprovechar este proyecto para, según sea la edad de los chavales, proporcionar los conocimientos relacionados con la gravedad o bien afianzarlos entre los que ya los conozcan. Ya sea dentro de la materia de física o ciencias, la gravedad es  un concepto que aunque no se conozca formalmente todo el mundo sabe de qué trata, e incluso un niño de corta edad puede definir sus principales características sin problema, simplemente fijándose en su entorno.

Astronauta pixabay

Con esto, el Diccionario de la Real Academia Española de la Lengua proporciona la siguiente definición:

2. f. Fís. Fuerza que sobre todos los cuerpos ejerce la Tierra hacia su centro.

Mientras que Wikipedia afirma lo siguiente:

La gravedad es una de las cuatro interacciones fundamentales. Origina la aceleración que experimenta un cuerpo físico en las cercanías de un objeto astronómico. También se denomina interacción gravitatoria o gravitación.

Por efecto de la gravedad tenemos la sensación de peso. Si estamos situados en las proximidades de un planeta, experimentamos una aceleración dirigida hacia la zona central de dicho planeta —si no estamos sometidos al efecto de otras fuerzas—. En la superficie de la Tierra, la aceleración originada por la gravedad es 9.81 m/s², aproximadamente.

Teniendo en cuenta que nuestro objetivo es crear un proyecto Scratch que simule la fuerza gravitatoria podemos utilizar una definición más ‘casera’ de lo que es la gravedad, y que nos permitirá además enlazar el concepto con los componentes e instrucciones necesarias para programar en Scratch. Según sea la edad de los chicos necesitaremos aportar detalles más profundos o, en el caso contrario, omitir características que no sean fundamentales.

De esta forma, la gravedad puede definirse como una fuerza siempre en dirección vertical, con sentido hacia abajo, y que actúa por siempre. Su efecto es visible hasta que el objeto está posado sobre una superficie, cuando entonces actúan otras fuerzas que modifican la interacción.

La gravedad en Scratch

La gravedad en Scratch es uno de los problemas más recurrentes para todo programador, y la implementación no es trivial… aunque tampoco imposible. Realmente es fácil, aunque hay que pensar un poco y darle a la cabeza para sacarla.

En primer lugar, la gravedad se caracteriza por ser una fuerza siempre en dirección vertical, y sentido hacia abajo. Necesitaremos crear ‘algo invisible’ que simule ese comportamiento.

Este ‘algo’ será, simplemente, un conjunto de bloques en Scratch que empujen al objeto hacia abajo, y que estén ejecutándose por siempre (la gravedad actúa las 24 horas del día, los 365 días del año)… salvo cuando el objeto en el que actúa este posado sobre una superficie. Vamos a asumir que esa superficie va a ser siempre el suelo, que lo vamos a simular con una línea de color marrón sobre el escenario (hay otras implementaciones posibles, como una objeto que incluya esa línea o como cualquier objeto; esto, para los más avanzados).

Escenario para la gravedad en Scratch

Con esto ya podremos empezar a programar la gravedad en Scratch, para tener una estructura parecida a la que os ponemos a continuación y que incluye un por siempre y un repetir hasta que [estemos tocando el suelo]. Nótese que cuando estamos en el suelo, aunque en la realidad la fuerza gravitatoria continúa actuando, no se observan diferencias ni cambios en los objetos, que se mantienen inmóviles.

Gravedad en Scratch

Para probar que la gravedad funciona deberemos aplicar algún tipo de movimiento a un objeto. Por ejemplo, hacer que el gato salte.Es muy común hacer que un objeto responda a movimientos con las flechas de dirección, pero implementar un ‘salto’ es algo ligeramente más avanzado: el salto implica un movimiento hacia arriba y otro hacia abajo. La segunda parte ya la tendremos (es la acción de la gravedad que ya hemos implementado), con lo que solo tendremos que crear la acción hacia arriba, el salto.

presionar-espacio-cambiar-y-60Hacerlo es muy sencillo: generar un movimiento hacia arriba. Esto puede implementarse de múltiples formas, si bien aquí lo haremos de la más sencilla: cambiando la coordenada ‘y’ del objeto con un valor correcto, es decir, con un número positivo.

También puede implementarse de forma que sea un salto progresivo y no una ‘traslación’ repentina, haciendo uso de un bucle repetir. Deberemos jugar con los valores de repetición del bucle y con el valor de traslación de la instrucción que modifica la coordenada y para conseguir un salto lo más realista posible.

¿Funciona la gravedad? En este caso, continuemos.

Hasta el infinito… Y más allá

Éste no es más que una pequeña funcionalidad que nos permitirá crear millones de otros proyectos partiendo de ella, es solo una parte de lo mucho que podremos poner en marcha gracias a la gravedad en Scratch. A continuación, algunas ideas más:

Cohete con gravedad en Scratch

  • La gravedad es ideal para… el espacio. Pon un cohete y añade el código necesario para que despegue y se pose en la superficie de otro planeta de una forma realista, con la gravedad en Scratch.
  • Hablando de planetas, cada uno tiene una gravedad diferente. ¿Por qué? Puede ser una propuesta interesante que investiguen las razones y creen un proyecto en el que expliquen cuales son las diferencias entre la gravedad de los diferentes planetas, añadiendo casos prácticos con simulaciones lo más reales posibles en Scratch.
  • Un juego fácil es aquel en el que caen cosas de la parte superior y un objeto en el suelo ha de recogerlas. ¿Te atreves a hacer este proyecto? Será muy útil utilizar clones para generar un entorno infinito
  • La gravedad es posiblemente la fuerza más conocida y ha servido de ejemplo para este proyecto. Sin embargo, no es la única: se puede crear un proyecto en el que se expliquen cuales son los fundamentos físicos y el funcionamiento de los vectores fuerza, ideal por ejemplo como herramienta para enseñarles estos conceptos a chavales de menor edad.
  • La propuesta de gravedad en Scratch que os hemos traído hoy es la más básica de todas, y muy mejorable. Por ejemplo, podemos hacer que los movimientos sean acelerados, y no constantes como lo es en nuestro ejemplo… pero esto no es trivial. Échale un vistazo al wiki de Scratch donde comentan otros métodos para este tipo de implementaciones más avanzadas.

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 las ideas recopiladas en este enlace 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)

 

Comentarios:

Sea el primero en comentar

avatar
wpDiscuz