Cambiar el fondo del escenario Como nuestro futuro personaje es un animal de hábitos nocturnos, adecuaremos el entorno para su comodidad. Para ello comenzaremos seleccionando el escenario y así acceder a sus propiedades. Es importante tener en cuenta que tanto el escenario como cada uno de los objetos *sprites+ tienen asociados a ellos una o más imágenes y eventualmente uno o varios programas *scripts+ (y posiblemente también algunos sonidos). Para poder acceder a la posibilidad de crear o cambiar estas propiedades asociadas siempre debemos primero seleccionar el objeto —o si es el caso, el escenario—
Deberás pasarte a continuación a la pestaña Fondos y desde allí seleccionar la opción Importar, ya que en nuestro caso lo que queremos es empezar usando un fondo prediseñado de los que trae el programa. Posteriormente veremos como podemos alterar este fondo original con las herramientas de dibujo que nos provee Scratch.
El paso que sigue es simplemente ubicar la imagen que irá en reemplazo del fondo blanco original. Para ello debemos entrar en la carpeta Nature (una de tantas donde se agrupan imágenes de fondo de acuerdo a una temática), y seleccionar la imagen stars… no es más que un fondo negro con puntitos blancos que simulan un cielo estrellado. Al aceptar veremos de inmediato la nueva imagen de fondo como opción predeterminada para Si todo resultó de manera correcta, deberíamos poder ver la siguiente imagen:
Ya estamos listos para la parte siguiente de la animación: cambiar a nuestro personaje...
Cambiar al personaje
A borrar al gato Comencemos seleccionando al gato, y procedamos a borrarlo del proyecto. La manera más rápida es haciendo clic derecho sobre él y en el menú contextual seleccionar borrar. Otra manera —más estructurada— de hacerlo es usando la barra de herramientas. En ella seleccionamos la herramienta Borrar (la del ícono mostrando una tijera)... vemos que el cursor ya no es una flecha y ahora tiene forma de tijera. A continuación haremos clic bien sobre el gato que se ve en el escenario, bien sobre el que se ve como único integrante de la lista de objetos. Cualquiera sea el método empleado, el gato dejará de ser parte del proyecto: esto se refleja en la lista de objetos (que ahora aparece vacía).
Ahora, a crear un objeto (sprite)
Ya es hora que aparezca nuestro personaje. Debemos ir a la zona de inserción de objetos nuevos (en la parte superior del listado de objetos) y hacer clic en Pintar un objeto nuevo. Seremos redirigidos a una nueva pantalla: el Editor de pinturas.
Esta herramienta está pensada para que nosotros creemos nuestras propias imágenes (con un conjunto de herramientas ciertamente limitado, pero que es del agrado de los "puristas" de Scratch, que suelen preferir generar todo —incluso las imágenes— desde cero).
Como realmente no queremos dibujar un objeto sino usar uno de los que vienen con el programa, haremos clic en el botón Importar (en la esquina superior izquierda) para proceder a la selección del mismo. De manera similar a lo que hicimos cuando importamos un fondo, se nos presentará una estructura de carpetas que fue organizada de acuerdo al tipo de imagen a buscar. La carpeta Costumes (una traducción sería trajes, disfraces) aparecerá abierta de manera predeterminada. Allí encontraremos subcarpetas que contienen gráficos de animales, vehículos de transporte, imágenes con letras y números, etc.
Ya que nuestro personaje es un animal (literalmente hablando), lo buscaremos en la carpeta Animals: bajo el nombre de bat1-a ¡por fin nos toparemos cara a cara(?) con Murci! Seleccionamos dicho archivo y a continuación pulsaremos Aceptar. Su imagen aparecerá así en la zona de edición, lista para ser cambiada de ser necesario. Nosotros no optaremos por este camino, así que pulsaremos de nuevo Aceptar... aparecerá así un nuevo objeto en el Listado de objetos. (Vamos a obviar cualquier comentario sobre la evidente hermosura de nuestro flamante personaje, sobre su impactante presencia sobre un fondo estrellado...)
Cambiando a la pestaña Disfraces podremos ver el primer disfraz asociado al objeto. Aprovechemos este momento para cambiarle el nombre al objeto: de Objeto1 —muy impersonal— lo pasaremos a llamar Murci ; ese cambio se verá reflejado también en el Listado. Uno de nuestros objetivos es animar a nuestro nuevo amigo. Necesitaremos para ello agregarle un segundo disfraz asociado: alternando entre estas dos imágenes podremos simular cierto movimiento de aleteo en el mismo (no os apresureis, que falta poco para ello).
Deberemos hacer clic en el botón Importar —en la pestaña Disfraces— para acceder a la búsqueda de una nueva imagen/disfraz: desde la carpeta Animals elegiremos en esta ocasión la imagen bat1-b ... conseguimos así agregar un nuevo disfraz. Cambiaremos su nombre a disfraz2. NOTA Podemos anticipar el efecto de la animación haciendo clic alternadamente entre uno y otro disfraz... en el escenario veremos a nuestro héroe aleteando muy concentradamente. ACLARACIÓN
Una forma alternativa —y más rápida— de agregar un objeto a nuestro proyecto es utilizando el botón Escoger un nuevo objeto desde archivo (en vez de usar Pintar un objeto nuevo). Seremos dirigidos así directamente a la opción de búsqueda de imágenes en las carpetas, tal como vimos anteriormente. De esta manera nos evitaremos pasar por el Editor de Imágenes, ya que por ahora no estamos considerando su uso... Ya tenemos todos los elementos preparados para —por fin— empezar a programar con Scratch. La buena noticia es que lo visto hasta ahora te será útil para cualquiera de los proyectos que encares en el futuro... Recuerda que toda animación resultará más completa si —además de la traslación y giro de los objetos— se consigue hacer alternar dos o más imágenes de los mismos en forma secuencial (en nuestro caso llamados disfraces), consiguiéndose así simular un vuelo, una caminata, algún cambio de expresión, etc.
Ya conseguimos tener a Murci "listo para la foto", pero lo queremos ver en acción... para ello deberemos programar sus movimientos: necesitaremos armar una especie de "puzzle" con los bloques que nos ofrece Scratch.
Extractado de la Guía de Referencia: "Usted puede darle instrucciones al Objeto, diciéndole que se mueva o toque música o que reaccione a otros Objetos. Para decirle a un Objeto qué hacer, usted encaja bloques gráficos unos con otros formando pilas llamadas programas (scripts). Cuando usted hace doble clic sobre un programa, Scratch ejecuta en orden los bloques desde la parte superior del programa hacia abajo." Recordemos que los bloques están agrupados en 8 categorías, de acuerdo a la funcionalidad que aportan a nuestros programas. Asimismo pueden distinguirse 3 tipos principales de bloques: Bloques para Apilar (stack), Sombreros (hats) y Reporteros (reporters) —pero todo esto ya lo sabés porque seguramente leíste la Guía…(¿o no?)—
[Empezando] Nuestra primera animación (muy simple)
De acuerdo a nuestro postulado —harto repetido— que enuncia: "...ir de lo simple a lo complejo..." vamos a generar nuestro primer script asociado al objeto Murci, un programa muy simple pero que nos permitirá estudiar la metodología de trabajo a la hora de programar. Nuestro trabajo se concentrará ahora en dos áreas de la interfaz de Scratch: el Área de Selección de Bloques y el Área de Programas. Seleccionando los bloques Lo que hace tan ponderable a Scratch como herramienta de programación es su simpleza: sólo basta ubicar el bloque que se necesita en el Área de Selección, y arrastrar y soltar dicha pieza dentro del Área de Programas, para posteriormente ensamblarlo con otros… ¡si hasta un niño puede hacerlo! Por supuesto que el ensamble debe responder a una lógica de funcionamiento (ahora viene la parte donde hay que pensar…). Arrastremos entonces los bloques [mover(10)pasos] —presente dentro del grupo Movimiento—, y [siguiente disfraz] —dentro del grupo Apariencia— llevándolos al Área de Programas; ensamblémoslos como se ve a continuación:
Nótese que cambiamos el valor de la cantidad de pasos del original de 10 a el nuevo de 5: el área blanca es editable simplemente haciendo doble clic en ella. NOTA: También es posible insertar en estas áreas de fondo blanco variables y otros reporteros como operaciones matemáticas, sensores, etc. (pero esto ya no está en la gama de lo simple, se acerca a lo complejo). IMPORTANTE
En lo sucesivo se tendrá sobreentendido que un programa (script) —ya sea completo o en parte— va a ser ensamblado en el Área de Programas, por lo que la imagen explicativa como la que vimos un poco más arriba ahora será expuesta de este sintético modo.
Probando los bloques Suele ser muy conveniente ir probando las pequeñas partes de programa que vamos ensamblando para ver cual es su respuesta en el escenario. Nada más simple que hacer un doble clic sobre nuestro ensamble y ¡voila! … ya pasó algo con Murci: se movió a la derecha y cambió su aspecto. Repitiendo varias veces ininterrumpidas esta acción ya tenemos una buena idea de lo que sucede. Si nuestro amigo se fue muy a la derecha simplemente debemos hacer clic sobre él y, sin soltar, arrastrarlo hacia la izquierda del escenario.
¿Cómo?... ¿que ya no lo ves? Un nuevo bloque puede ir en tu ayuda: agregá [ir a x:(0)y:(0)] al Área de Programas —no lo ensambles por ahora, dejalo suelto— y hacé doble clic sobre él: ya debes ver en el escenario a nuestro murciélago. Podés aprovechar este momento para probar con distintos valores de x y de y (que son las coordenadas de referencia vinculadas al escenario, las x en sentido horizontal y las y en sentido vertical), y ver así que pasa con la ubicación del objeto… esta experimentación es conveniente para aprender por prueba y error este asunto de las coordenadas. Agregar ciertos bloques al Área de programas y hacer doble clic sobre ellos es una manera de darle instrucciones simples a los objetos. Si después terminan formando parte del programa definitivo es algo que se evalúa para cada caso en particular. Sumando nuevos bloques
Vamos a introducir ahora la idea de recursividad. Para explicar de que se trata, empecemos agregando —desde la sección Control— un nuevo bloque participante: [esperar(1) segundo] ; ensamblémoslo junto a los 2 que ya teníamos y cambiemos su valor de 1 a 0.25 (equivale a 1/4 de segundo). Repitamos este ensamble de tres bloques 4 veces hasta que nos quede el grupo de bloques de la derecha. Haciendo doble clic sobre los bloques ya vamos percibiendo el truco: sólo se trata de apilar varias veces el conjunto formado por los tres bloques de arriba… ¡pero aunque ya usamos 12 bloques apenas se movió nuestro amigo!. Afortunadamente en programación están contemplados estos casos como una de las formas más elementales de recursividad, y existen instrucciones que "alivianan" la escritura y posterior "entendimiento/lectura" de los programas: son las estructuras tipo bucle (loop), y en nuestro caso el tipo de bucle de repetición (…a buscar ya en la sección de Control).
SI. Este ensamble de la izquierda hace lo mismo que los 12 bloques anteriores. Maravilloso ¿no?… especialmente porque —como seguro te diste cuenta— cambiando el repetir 4 por repetir el número que se te ocurra, seguiremos usando muy poquitos bloques: intentalo con repetir 50, y probalo con doble clic. IMPORTANTE Cuando hablamos de pasos estamos hablando de la unidad de longitud interna que usa Scratch. A modo indicativo podemos señalar que el escenario tiene 480 pasos de ancho (sentido horizontal) por 360 pasos de alto (sentido vertical)… más detalles, como siempre, en la Guía de Referencia. Si querés saber cuantos pasos avanzó Murci en este último caso propuesto, solo tenés que multiplicar el número que pusiste al lado de repetir [usamos 50] por el que pusiste en el bloque azul de movimiento [usamos 5]: la respuesta es 50 x 5 pasos = 250 pasos. Concluímos así con el núcleo de funcionamiento de nuestro programita. Tranquilos, que nos queda poco para terminar…
Ya pudimos ver a Murci "en acción", y la parte central del programa ya la tenemos concluída. Pero para darle un cierre al mismo debemos primero presentar algunos conceptos vinculados a la Programación: en especial nos dedicaremos a introducir la idea de "condiciones iniciales". Es muy usual en cualquier programa el que no se dejen al azar ciertas cuestiones: quizás hayas escuchado alguna vez expresiones como seteo o settings… si no es así no te preocupes (para eso estamos aquí). El proceso de seteo tiene que ver con dar ciertas "condiciones iniciales" a los programas al momento en que estos arrancan (o se ejecutan). Scratch no es una excepción sobre estas cuestiones, y suele ser una regla de buen programador el asignar condiciones iniciales a los objetos participantes en cada proyecto. Ten en mente que esto no siempre será indispensable… de hecho cuando guardamos un proyecto Scratch se encarga de almacenar automáticamente algunos datos, como ser: posiciones, ángulos de movimiento, tamaños, etc. "
[Terminando] Nuestra primera animación Entonces, ¿qué nos falta?
Realmente muy poco. Primero debemos colocar una condición inicial indispensable para nuestro programa. De otra manera Murci siempre comenzará su audaz aleteo desde la última posición que está ocupando o, en su defecto, en la posición en donde quedó cuando se guardó el proyecto (cosa que todavía no hicimos). ¿Cómo hacerlo? ¿Recuerdas el bloque [ir a x:(-150)y:(0)] que dejamos sin ensamblar anteriormente? Bueno, si lo apilamos por sobre el bucle que estuvimos usando veremos una condición inicial en funcionamiento: así es como Murci siempre comenzará su evolución desde el mismo punto del escenario.
Una cosa más —y FUNDAMENTAL—: necesitamos un elemento de control para arrancar el programita (ya que el recurso de hacer doble clic está pensado sólo como herramienta a la hora del diseño y prueba). Usaremos en nuestro caso la instrucción al presionar "Bandera verde"—del tipo Sombrero—… esto nos pone en condiciones de iniciar nuestro programa desde la zona de comandos mediante el botón Iniciar programas de la bandera verde (lo que ves en la imagen). Increíble o no, ya culminamos nuestro primer pequeño y simple programa (aplausos). No te dejes amedrentar por el "montón de palabras" que son necesarias para explicar algo que es más fácil de entender si lo vas probando, y analizando. Con un tiempo de trabajo en Scratch, todo lo dicho aquí te resultará casi trivial. Los bloques de control son uno de los pilares fundamentales en la programación, junto con el uso de variables y listas. Están ligados directamente con la idea de algoritmo, de estructurar una serie de pasos de manera lógica para conseguir un fin determinado. Aprender sobre su uso es quizás la tarea que le dé más dificultad al que se inicia en el camino de programar, pero es también la más estimulante…
Para terminar
Como no puede ser de otra manera, si el proyecto fue exitoso (o está en vías de serlo) debe ser guardado para su posterior visualización, prosecución, para ser usado como base de otro proyecto, para compartirlo con otros, etc. Podrás acceder al comando pertinente yendo a barra de menús » Archivo » Guardar (o Guardar como..., si corresponde), y deberás luego ponerle un nombre al proyecto.
Scratch te ofrece de antemano la carpeta Scratch Projects para que guardes tus trabajos; puedes acceder a la misma haciendo clic en el botón Mis Proyectos presente en la ventana emergente. 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 ). Si comprendiste lo que vimos en esta primera parte del tutorial, ya estás listo para lo que sigue…sólo un poco más complejo.