2do paso: Reanimar al objeto (parte III)

Ya aprendimos todo lo que necesitamos saber sobre el tema "cambio de tamaño de objetos" (y te será suficiente para casi todo lo que hagas de aquí a mucho tiempo).
El destinatario de nuestro nuevo saber será ahora Murci… comenzaremos achicándole su tamaño para después adentrarnos en animar su movimiento.

Achicando a Murci (o ¿poniéndolo más lejos?)

Y sí, en el fondo es una cuestión de perspectivas…. Más allá del juego de palabras, si alteramos el tamaño de un objeto en forma relativa al tamaño de otros, o del escenario, también podemos estar definiendo cambios sobre la pespectiva visual de la animación (para mejorarla, se entiende).
Yendo al grano: volvé a abrir el proyecto que tiene a Murci como protagonista, y en donde lo último que hicimos fue alterar el fondo del escenario.
  • Vamos a cambiar el tamaño de nuestro amigo a una cuarta parte del original (25%) utilizando el 2º método explicado en la página anterior.
  • Cambiaremos también las coordenadas desde donde inicia su evolución y la cantidad de pasos que dará por cada vuelta del bucle —de 5 a 10 pasos—.
  • De paso, también cambiemos el tiempo de demora (delay) dentro del bucle —de 0.25 a 0.2 segundos—.
Una vez hecho esto, corramos el programa.
¡Cuán lejos se lo ve! Una vez superada esta desazón (?) hay una cuestión a resaltar: debido a que aumentamos de 5 a 10 los pasos en la instrucción correspondiente, ahora su vuelo recorrerá 500 pasos (esto es 50 x 10 pasos)… lo que debería sacarlo del escenario.

Pero esto no es lo que sucede

Por una pauta de funcionamiento interno de Scratch (de la que sinceramente desconozco su justificación) los objetos no pueden avanzar mucho más allá de los límites de escenario… , por eso verás en las últimas evoluciones de Murci una parte de su ala "agitándose" en el mismo lugar (indicando que no fue más allá).

Volando hasta el fin

Tan contento se lo vé con su nueva velocidad de movimientos, que dá pena que su vuelo sea tan corto…Pero ¿qué hacer? ¡si su mundo es un escenario! Poniéndonos de nuevo serios, vamos a ver una manera simple de generar un movimiento continuo.
Las "mentes brillantes" detrás de Scratch pensaron en una situación como ésta, y decidieron darnos una solución simple para resolver el problema: inventaron el bloque rebotar si está tocando un borde. Con su uso un objeto que se topa con los límites del escenario simplemente rebotará como lo haría una bola de billar contra los bordes de la mesa de juego, o como se desvía un haz de luz incidente sobre un espejo, o…

NOTA

Es totalmente factible la implementación de una solución similar a la que se consigue a través de este nuevo bloque usando otras instrucciones más generales, pero para ello se necesitaría de mayores conocimientos de programación y de un dominio del entorno superior al que posee un programador novato (fundamentalmente sobre cuestiones vinculadas a la geometría)
<si sos curioso mirá aquí>.
Conviene mencionar que el concepto de Sólo si —implícito en el bloque— es de uso habitual a la hora de armar estructuras de control.
Volvamos a nuestro proyecto y pensemos un poco sobre la cuestión: Murci se mueve 10 pasos, cambia de disfraz, hay una espera de 0,2 seg., se vuelve a mover 10 pasos… y así hasta que se topa con un borde. Como en principio no se sabe cuando va a suceder este "choque", el programa debe sensar (o chequear) esta situación por cada vuelta del bucle, y siempre tener en claro que SÓLO se ejecutará el rebote SI el toque se produjo (releelo hasta entender).
Como resultado de este análisis tendremos que colocar el nuevo bloque dentro del bucle, como vemos en la imagen a la derecha.
new con rebote

No paran las sorpresas

Ejecutando el programa se nos presentará algo inesperado: Murci felizmente siguió moviéndose al poder ahora cambiar su dirección, ¡pero quedó cabeza abajo…!

Esta vez la solución no vendrá de un bloque de programa.

Como nunca elegimos un estilo de rotación para el objeto, este responde usando su modo predeterminado de giro, que es la opción giro habilitado. Deberemos entoncer efectuar un cambio desde el Área Estilo de Rotación, ubicada sobre el Área de Programas: usaremos en nuestro caso el estilo sólo mirar izquierda-derecha.
¡Voilá!, nuestro problema solucionado. Y tranquilos, que cuando guardemos el proyecto Scratch se encargará de recordar nuestra elección al respecto.
Probemos lo que tenemos hasta aquí antes de seguir, y asegurémonos de comprender los últimos cambios realizados…
rotación

NOTA versión 2.0

En Scratch 2.0 si existe un nuevo bloque de programación que permite determinar el estilo de giro desde los scripts del objeto en cuestión.

Y si decimos hasta el fin...

bucle infinito
bandera verde
…decimos que su movimiento no va a detenerse —como hasta ahora— luego de una cierta cantidad de pasos, sino que seguirá ad eternum (latín básico).
Existe una estructura de control que se ajusta como anillo al dedo a lo que necesitamos: el bloque por siempre. Reemplacemos entonces el bucle de repetición anterior por nuestro nuevo bloque de control y así conseguiremos que Murci deambule denodadamente —y sin aparente cansancio— de un lado al otro del escenario.
Eso sí, para que detenga su vuelo tendrás que detener el programa con el botón rojo PARAR TODO (vecino del botón bandera verde).

Si todo anduvo OK, guardá el proyecto para que se almacenen los últimos cambios.
NOTA: En lo inmediato (parte IV) no lo vamos a usar.

PARA VER

Podés visitar esta página dentro del sitio de Scratch para ver esta parte del proyecto en acción, e incluso descargarlo (si estás suscripto como usuario).

Lo que vimos en esta parte III del 2º paso fue relativamente sencillo, pero lo que viene…
Última actualización: Febrero 22, 2014

No hay comentarios.:

Publicar un comentario

© Scratch CodeLab | D153ñ0 b454d0 3n l4 pl4n71ll4 SimpleRWD d3 Oloblogger