1er paso: dibujar un cuadrado (parte III)

Si tuviese que buscarle un título alternativo a esto, sería seguramente: "¡En que lío me metí...!
Alguna de las preguntas formuladas en la página anterior sólo pueden aparecer por una simple razón: una mala base conceptual. Confundir la imagen de un objeto (alguno de sus disfraces) con el objeto en sí sería un buen ejemplo de error conceptual.
Lamento decirlo, pero no soy programador: soy solo un simple docente. Dicen por ahí que Scratch es un lenguaje de programación orientado a objetos (aunque lo correcto para Scratch 1.4 sería basado en objetos) . Con eso en mente voy a intentar a garabatear algunas ideas.
Objeto: entidad provista de un conjunto de propiedades o atributos (datos) y de comportamiento o funcionalidad (métodos) los mismos que consecuentemente reaccionan a eventos. Se corresponde con los objetos reales del mundo que nos rodea, o a objetos internos del sistema (del programa). Es una instancia a una clase. Fuente: Wikipedia
Chino básico… lo sé.

Mi libre interpretación

Intentemos aplicar la definición a nuestro objeto Pier:
  • Pier va a tener cierto comportamiento (por ahora y por poco tiempo el script que le escribimos)
  • va a reaccionar a ciertos eventos (por ahora va a ser sensible al pulsado de la barra espaciadora)
  • va a tener ciertas propiedades asociadas (o atributos) que pueden ser alteradas por causas internas o externas
Hay realmente muchos atributos o propiedades asociadas a un objeto en Scratch, entre ellos:
su posición: definida mediante dos números (coordenadas x e y ), que identifican unívocamente un punto específico del espacio de trabajo. UN SÓLO PUNTO.
Y para responder a una de las preguntas formuladas: todo objeto tiene asociado un sólo punto.
 
su imagen: es alguno de sus disfraces. Es una propiedad del objeto, NO TODO EL OBJETO. Su tamaño será mayor que el de un sólo punto, y la manera en que se visualizará en pantalla dependerá también de otros atributos: dirección, tamaño, más otros vinculados a ciertos efectos visuales (cambio de color, transparencia, etc.).
Como vemos, tanto la posición como la imagen/disfraz son dos propiedades distintas del objeto. Pero hay un vínculo entre ellas, y es por esto que la imagen puede trasladarse y/o girar respecto a un eje. Es lo que en Scratch se denomina centro de disfraz (o también punto de rotación).
Pensalo como un punto especial del disfraz (de cada disfraz) que está vinculado o "enganchado" a la propiedad posición, y es el único punto de la imagen que verdaderamente irá a los valores de coordenadas propios del objeto.

sobre el DIBUJO

Una cosa más vinculada al problema de Pier, y que tiene que ver con las capacidades de dibujo de los objetos en Scratch: al momento de ser trazados los sucesivos segmentos del dibujo sobre el fondo del escenario lo que realmente va a ser tenido en cuenta es la propiedad posición del objeto (esto es, ese punto determinado por sus coordenadas). Los segmentos van a ir uniendo las sucesivas posiciones que tendrá el objeto durante su evolución, trazando lo que se denomina una línea poligonal.

Volviendo con Pier

centro de disfraz
Ya podemos volver con Pier con este nuevo "puñado de verdades", y levantarle el ánimo explicándole que no es él quien se equivocó, fue a nosotros que nos faltó hacer algo…
Primero que nada, vamos a ver como identificar el punto del disfraz de Pier asociado con la posición. Ubiquémonos en la pestaña Disfraces del objeto Pier para encontrar su disfraz, y hagamos clic en el botón Editar para abrir así el Editor de Pinturas.
Por ahora nada nuevo, pero pulsemos ahora (y tal como indica la imagen a tu izquierda) en el botón Seleccionar centro de disfraz.
¡Ajá!... aparecen dos líneas que se cruzan justo en el centro del disfraz: ese es el punto del disfraz asociado a la posición del objeto, del que venimos hablando ya hasta el hartazgo.

IMPORTANTE

Cada vez que agreguemos un nuevo disfraz a algún objeto, Scratch se encarga de asignarle al mismo un punto de centro de disfraz o punto de rotación.
Como quizás ya te hayas dado cuenta, de manera predeterminada el punto elegido es el que corresponde al centro de la imagen.
Ahora está todo claro. Pier parecía dibujar con su cabeza (que no es lo mismo que dibujar en su mente) ¡porque su punto del disfraz asociado a la posición está en su cabeza!…
Date un tiempo para pensar. Es este punto en su cabeza el que se está posicionando en las coordenadas asociadas al objeto, y por donde pasan entonces las líneas de dibujo (tal como resaltamos un poco más arriba).
La solución a esta altura debería ser evidente…

La solución para el problema de Pier

Lo evidente es: si queremos que las líneas del dibujo pasen por la punta del lápiz ¡deberemos cambiar el punto de la imagen usado como centro del disfraz!. Y ese nuevo punto se corresponderá con las coordenadas de posición del objeto (… ya no más en su cabeza).
Intentá reposicionar las líneas que indican el centro del disfraz haciendo clic donde queremos el nuevo punto, ubicándolo ahora (of course) en la punta del lápiz… te debería quedar algo como lo que ves en la imagen.
Cuando estés conforme hacé clic en Aceptar.
¡Fantástico! Solucionamos el problema de Pier, y ya lo podés ver en el escenario con su enorme sonrisa (esta vez más que justificada), dibujando con absoluta precisión.
Fijate que al cambiar el punto, la imagen (disfraz) se acomodó en el escenario para adaptarse a su nueva realidad. Aunque todavía con nuestro ultra-simple programa no hicimos girar el objeto, tené en cuenta que la imagen tomará la punta del lápiz como nuevo eje de giro, lo cual por otra parte será visualmente correcto.
corrección

A tener en cuenta

Esta solución que es muy simple de aplicar cuando tenemos un sólo disfraz para el objeto, puede complicarse bastante cuando tengamos dos o más disfraces, ya que deberemos volver a coordinar a los mismos (si es que ya estaban coordinados). Recordá que hay un punto centro de disfraz por disfraz (cuando uno lo dice en voz alta se siente algo tonto).Tenelo en cuenta si te encontrás en el futuro con esa situación.

Y el cuadrado ¿para cuándo?

La verdad que es justificada la pregunta… hasta el más paciente de los orientales (un saludo a los hermanos uruguayos) debe estar con sus dientes rechinando de impaciencia. Pero creo que si te quedó claro lo visto en estas páginas aprendiste algo que te llevará a encarar con más soltura y confianza tus proyectos a futuro. Y la verdad, yo también aprendí al tener que escribir esto.
Si ya estás cansad@ —como yo— te sugiero que guardes el proyecto. Ya estás grandecito y sabrás que nombre ponerle y en que carpeta guardarlo. Yo mientras tanto voy pensando en como avanzar sobre lo que sigue…
Última actualización: Febrero 23, 2014

No hay comentarios.:

Publicar un comentario

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