2do paso: poner el reloj en hora (parte II)

Nuestro tan necesario anális matemático previo quedó en el pasado; nos deberemos ver ahora cara a cara con el desafío de ampliar/mejorar nuestro proyecto del 1er paso.
Desde ya que no habrá que reelaborar todo de cero: buena parte de lo trabajado podrá ser reutilizado… es un buen ejemplo de lo que en el mundo Scratch se denomina remezclado (remix) de proyectos —en este caso de un proyecto propio—.
Tratando de ser fiel a mi compromiso de ser breve… [corté la oración]

Dos etapas, un mismo proyecto

Estamos en tiempo de elecciones en mis pagos santafesinos [a julio del 2011], creo que por eso se me pegó esta onda sloganque nunca dicen mucho sobre nada de fondo.
Por lo tanto seamos claros: de la lectura de las últimas metas enunciadas puede inferirse que nuestro proyecto estará constituído por 2 etapas.
La segunda —desde el punto de vista cronológico— tiene que ver con el comportamiento dinámico del reloj (pulsos, sincronismo y demás yerbas), y está en gran medida ya resuelta con lo visto en el 1er paso de nuestro Tutorial.
La primera etapa tiene que ver con la puesta en hora inicial (recordemos que el reloj estará detenido durante este proceso), y es lo que trataremos en esta página.
¿Qué determinará el paso de una etapa a otra? La acción del usuario, quien luego de definir los valores para HORA y MINUTO debe proceder al pulsado de un botón de arranque (que es un nuevo objeto que deberemos agregar al proyecto).
De nuevo (como en el tutorial 2) será decisivo el uso del envío de mensajes para que esta separación en etapas funcione.
Ahora pongámonos el overol, y a trabajar…

¡Se largó el remix, nomás…!

Y si de un remix hablamos deberemos partir abriendo un proyecto previo (scratch watch 1, el del 1er paso)…
¿Cómo que no lo tenés? Bueno, tenés 2 caminos: o guiarte leyendo las 5 amenas páginas previas para así construirlo, o bien —en caso de que ya tengas una cuenta en el Sitio de Scratchir a esta página y bajártelo [si andás con tiempo te sugiero la primera opción].
Una vez cumplido lo anterior —y antes que nada—, guardalo con otro nombre (scratch watch 2 no estaría nada mal).

Para muestra falta un botón

Mencionamos antes de la necesidad de agregar un nuevo objeto que cumpla la función de botón de arranque del reloj. Es momento entonces de que —de la misma forma que hiciste con las agujas— descargues a tu máquina las dos imágenes de visado que estás viendo a la derecha (waiting.png y start.png).
¿Listo? Bien, usando el botón Escoger un nuevo objeto desde archivo deberás crear el nuevo objeto, usando waiting.png como imagen.
Una vez agregado desplazalo con cuidado a la izquierda del cuadrante y renombralo como botón. Y como botón tiene un sólo disfraz es momento de proporcionarle otro: desde la pestaña Disfraces seleccioná la opción Importar y buscá a start.png… ¡ con todo lo que sabés no vas a tener problemas !

Empecemos a programar a "botón" 

scripts botón
scripts botón
Vamos a proporcionarle unas primeras líneas de programa a nuestro reciente objeto.
Como siempre es recomendado, démosle condiciones iniciales: como ya estás viendo quedará posicionado cómodamente a la izquierda del cuadrante, y su disfraz inicial será el que mostrará en espera del clic del usuario (¡por algo se llama waiting!). Debido a que una vez que el reloj esté en marcha el botón se "desvanecerá" —no es poesía— le deberemos agregar la instrucción mostrar.
El segundo script estará dedicado para responder a la acción de clic del usuario: sólo requerirá en lo inmediato que creemos un nuevo mensaje (START) para el bloque enviar a todos.
Por ahora aportamos aquí lo imprescindible para que podamos seguir con el Tutorial, aunque más adelante deberemos ampliar estos 2 scripts con nuevas funcionalidades.

Separando las aguas ("¿y las matemáticas para cuándo?")

No te hice pasar por la pesadilla vivida en la página previa en vano. Pero primero es necesario ver cómo esta separación en 2 etapas propuesta afectará a la programación heredadada desde el proyecto scratch watch 1, para posteriormente meternos de lleno en la solución del problema del ajuste horario. Ya te anticipo que como producto de nuestro trabajo generaremos 2 soluciones, una más simple y otra un poco más compleja ("¿dónde escuché esas palabras antes"?).
Si recordás lo generado en el 1er paso debés tener en claro que la base de tiempo de nuestro mecanismo reside en el script del segundero: el pulso que gobierna el funcionamiento de todo se origina allí.
Es casi trivial pensar entonces que tomando el control del inicio de este generador de pulsos pasamos a controlar al arranque del reloj: tan simple como eso.
A partir de ser efectuados los cambios que ves en la imagen que nos acompaña el reloj ya no comenzará su funcionamiento con bandera verde: con la misma sólo se ejecutarán aquellas acciones vinculadas a las condiciones iniciales de los objetos…
Nuestro reloj sólo podrá ser arrancado por la acción del usuario al hacer un clic sobre botón —es en uno de sus scripts que se genera el mensaje START, remember that?—.
scripts segundero
scripts segundero

La buena noticia es que como las condiciones iniciales de segundero no dependerán del ajuste de la hora dado por el usuario (recordemos que siempre arrancará marcando cero segundos) ya no deberemos modificar más la programación del objeto segundero.

Si ya efectuaste los retoques de programación propuestos, y ya con el cuarto objeto (botón) incorporado a nuestro proyecto, es recomendable que procedas a guardar los cambios a scratch watch 2.
Seguro que ya probaste como funciona todo: el único cambio notable es que el reloj ahora debe arrancarse con un clic. Dejaremos para la página siguiente generar el mecanismo de ajuste de hora y algún que otro detalle menor restante.
¡Ánimo, que queda muy poco de este 2do paso!
Última actualización:Marzo 3, 2014

No hay comentarios.:

Publicar un comentario

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