1er paso: diseñar el mecanismo (parte II)

Como todo reloj analógico que se precie de tal el nuestro también necesitará de agujas. En lo previo ya conseguimos proveer a nuestro proyecto de un "coqueto" y estático cuadrante… dotemos entonces a nuestro mecanismo de sus "piezas móviles".

Armando "el reloj"

Si fuese Armando no estoy seguro de querer ser apodado de tal manera (hay cierto efluvio de filosofía positivista y de progreso continuo que no me vá). Por suerte para todos estoy hablando de otra cosa… aunque ya la idea de segmentar y cuantificar el tiempo dá bastante para pensar: ¿leíste Hombres y engranajes?… cito textualmente:
"Los medios se transforman en fines. El reloj, que surgió para ayudar al hombre, se ha convertido hoy en un instrumento para torturarlo"… "La velocidad de nuestras comunicaciones ha valorizado hasta las fracciones de minuto y ha convertido al hombre en un enloquecido muñeco que depende de la marcha del segundero".
Hombres y Engranajes - Ernesto Sábato (1911 - 2011)
Pido perdón por este tipo de digresión inútil para algunos —mensaje en una botella flotando dentro de otro mensaje en una botella—. Volvamos entonces a la realidad que nos ocupa en esta etapa, esto es, ver cómo dotar a nuestro proyecto de las tres agujas necesarias y cómo disponerlas espacialmente por sobre el escenario.

A colocar el segundero

Nuevamente te encontrarás ante la disyuntiva de (1) "fabricar" tu propio segundero, (2) de conseguir alguna imagen de la web o (3) de usar la imagen que gentilmente te proporcionamos en esta página. Por una cuestión de practicidad y de favorecer el seguimiento de este Tutorial yo presupondré que tomaste el tercer camino… vos sabrás como adaptar estas ideas propuestas según tu propia decisión.
Lo primero que deberás hacer es descargar/guardar la imagen del hermoso segundero —que ya estás viendo— en alguna carpeta de tu computadora que te parezca adecuada. Si no recordás como hacerlo no problem: solo debés hacer clic derecho sobre la imagen y te aparecerá la opción Guardar imagen como... (o alguna similar, todo depende del navegador que estés usando para ver esta página). La imagen tiene como nombre bigsegundero.png... podés cambiárselo si querés, pero ese cambio no agregará nada sustancial al proceso que sigue.
Ahora debés abrir el proyecto Scratch sobre el que estábamos trabajando: vamos a crear un nuevo objeto que tenga como disfraz a la imagen del segundero que acabás —espero— de descargar a tu máquina.
Recordá que habíamos previamente borrado al único objeto con que contaba el proyecto —el gato—, por lo que no nos aparecerá ningún objeto previo en el listado (of course, dirás acertadamente).
nuevo objeto
En la última imagen podés ver como generar un nuevo objeto en Scratch 1.4: una vez hecho clic en el botón Escoger un nuevo objeto desde archivo te aparecerá la ventana para la búsqueda de archivos… es el momento de que ubiques la carpeta donde guardaste a bigsegundero (¡crucemos los dedos!). Si lo conseguiste ya deberías ver al nuevo objeto dentro del listado; cambiémosle su nombre a uno más adecuado: segundero.
segundero
vista
Te dejo un par de imágenes para que veas como me quedó a mí: aprovecharemos las mismas para tomar nota a continuación sobre algunas cuestiones…

Algunas disquisiciones

Por lo pronto algunas cosas parecen no estar bien… don't panic!. Nuestro segundero no está colocado donde sería deseable encontrarlo —a pesar de tener coordenadas (x=0, y=0)—, y es evidente que su tamaño parece exagerado para lo que son nuestras necesidades. En cuanto a su dirección de 90º aparece como correcta (aprovechemos para recordar que todo nuevo objeto que es agregado a Scratch aparece apuntando en dirección 90º por defecto).
Solucionar lo del tamaño es más que simple. Pero primero quiero que veas en la práctica cual es el problema más grave al que nos vamos a enfrentar ("¡que exagerado…!").
Dentro de la sección Programas del objeto segundero tenés que armar el simple script de testeo que aquí a la derecha te mostramos: su finalidad apunta a proporcionar el movimiento de giro continuo esperable en cualquier segundero. Tomate un tiempo para probarlo y deducir a continuación por qué pasa lo que pasa… yo te espero.

Algunas conclusiones

Lo del tamaño del segundero se solucionó sin problemas, pero su movimiento dista de ser el esperado ¿Dista de ser el esperado? Yo diría que dista de ser el que necesitamos. El problema parece ser semántico, pero no lo es.
¿Cómo describiríamos el movimiento de nuestro objeto hasta aquí? Es un objeto que gira continuamente en el sentido de las agujas del reloj —¿una tautología?— respecto a un eje imaginario que pasa por la mitad de su longitud. Ese eje además está ubicado en una posición (x=0, y=0) respecto a las coordenadas del escenario…
¿A qué te suena todo esto? Si no leíste sobre punto centro de disfraz o punto de rotación en el Tutorial previo te debe sonar al más profundo de los silencios

Muy resumidamente: todo disfraz tiene un (1) punto de su imagen que está asociado a la propiedad posición del objeto al que pertenece, y es ese punto además el que se toma como el eje de rotación de toda la imagen en caso de que esta se produzca.

¿Qué es lo esperable sobre el disfraz de todo nuevo objeto creado a partir de una imagen? Que tenga como punto centro de disfraz a aquel punto que se ubique en el centro de dicha imagen, punto por donde pasará el eje de rotación imaginario. A todo esto se agrega que, cuando se posiciona un objeto, es este punto el que irá a las coordenadas explicitadas —(x=0, y=0) en nuestro caso—.
Si pensás sobre lo que sucede hasta ahora con nuestro segundero, podrás ver que se corresponde con todo lo que acabamos de decir.
Ahora bien, ¿qué es lo que necesitamos de la imagen en nuestro objeto segundero?
RESPUESTA: que su eje de rotación pase por el lugar esperable en un segundero "real" (el círculo negro en la imagen previa), y que ese punto de giro se ubique en el centro del cuadrante.
LA SOLUCIÓN: cambiar de lugar al punto centro de disfraz (o punto de rotación).

Poniendo la solución a punto 

cambio de punto
Ya explicamos detalladamente el procedimiento para el cambio de punto centro de disfraz cuando tuvimos que trabajar con nuestro amigo Pier (¿cómo que no sabés quién es Pier?). No lo voy a repetir aquí, pero ya estás viendo una imagen orientativa para que veas donde debería quedar el nuevo punto en nuestro disfraz bigsegundero.
¿Ya lo conseguiste? Sólo resta que corras nuevamente el script de testeo con bandera verde… ¿qué me contás ahora?
Un último comentario: no tuvimos que posicionar el segundero al centro de coordenadas porque cuando agregamos el nuevo objeto Scratch le asignó por defecto las coordenadas (x=0, y=0)… pero si por descuido vos lo moviste deberías simplemente agregar al script un bloque ir a x:(0) y:(0).
Como ya terminamos de usar el pequeño script de testeo, te sugiero que lo borres para no generar confusión en el posterior desarrollo del tutorial.
Hecho esto damos por finalizada la colocación del segundero. Si te quedaron dudas te aconsejo que vuelvas a releer todo porque…

A colocar el minutero y "a ese de la hora"

… el procedimiento para agregar las otras 2 agujas —el minutero y ¿el horario?— será en un todo similar.
En primera instancia deberás descargar las dos imágenes que ya estás viendo (diseñadas también usando el programa de dibujo vectorial Inskcape), guardándolas en una carpeta de tu computadora. Sus nombres son bigminutero.png y bighorario.png.
Posteriormente deberás crear 2 nuevos objetos a partir de cada una de las mismas, y cambiarles luego sus nombres a minutero y horario (nada original, pero muy funcional).
En cada uno de los disfraces se necesitará "desplazar" su punto centro de disfraz de manera similar a lo que hicimos previamente con el segundero.
Quedarán por delante un par de cambios a realizar sobre los objetos minutero y horario: disminuir sus tamaños a la mitad (50%), y posicionar a ambos en el centro de coordenadas —usando el bloque ir a x:(0) y:(0)—. Podés ir haciéndolo ahora o esperar, ya que será parte de lo que trataremos en lo que sigue de este tutorial.
Como siempre, algo que no debés olvidar: procedé a guardar el proyecto para salvar estos últimos cambios realizados.

Ya conseguimos dotar al proyecto de los tres objetos indispensables para el funcionamiento de cualquier reloj analógico. Queda a continuación generar la programación necesaria para el movimiento de los mismos… pero empezaremos tratando una cuestión quizás menor (menos central debería decir): el orden de visualización de los objetos.
Vamos a una pausa y enseguida volvemos…
Última actualización: Marzo 1, 2014

No hay comentarios.:

Publicar un comentario

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