Volvemos con Winston Ahora tenemos ambas: la variable "x" y la "y" Para la posición de Winston Así que le podemos mover hacia los lados Hacia arriba y hacia abajo wew! Muy chulo! Ahora vamos a devolverlas a su estado original Eran: 200 (x) y 200 (y) Vamos a ver como funciona este programa Así que empezando aquí: Tenemos una variable (tamañoOjos) Que se está usando para manejar el tamaño de los ojos Porque los ojos son 40 pix. de ancho y 40 pix. de alto Y despues tenemos estas variables "x" e "y" Y esos posicionan el centro de la cara Y las podeis ver usadas En este comando "ellipse" Que dibuja ese gran círculo amarillo Y luego aquí abajo Para los ojos La "x" y la "y" son usadas de nuevo Y aquí Los ojos son posicionados Relativos al centro de la cara Así que este está Cincuenta píxeles A la izquierda del centro Y este está 100 píxeles a la derecha del centro Ok. Pues muy chulo! Y esa es la razon por la que podemos mover a Winston hacia arriba y abajo Ahora, quiero poder controlar mas cosas de la cara de Winston usando variables Así que quiero averiguar que mas en este programa podemos "guardar" como variables Para eso Voy a ir buscando en cada linea de codigo Y buscar lo que llamamos "hard coded" numbers esos son numeros que son simplemente numeros a secas no son variables ni numeros dependeintes de variables así que vamos a empezar aquí en el primer eclipse tenemos 300 y 300 para la anchura y la altura esos simplemente son numeros a secas así que vamos a hacer una variable sustituyéndolos llamado faceSize (tamañoCara) y guardar en el el numero "300" Ahora simplemente escribiremos faceSize faceSize Ok, sigamos y saltarnos los colores (comando fill) ahora los comando elipticos son o todo variables o dependientes de variables así que las vamos a dejar así por ahora y luego el comando de la boca esos son dependientes de "x" e "y" pero estos de aquí son solo numeros a secas 150 y 150 Así que vamos a decir que mouthSize (buen nombre) es igual a 150 Sustituiremos mouthSize y mouthSize Vale, entonces, ahora tenemos los tamaños de las figuras guardados como variables ahí arriba eso significa que es muy muy facil para nosotros cambiar los tamaños como esto mira Woooo Winston tiene hambre! jajaja y algo como ya sabes como Winston tiene mucha hambre y luego se come un monton de donuts y luego se hace super grande xD. Vale. Pero hay algo que no me gusta de este programa ahora mismo Así que si hago el tamaño de la cara muy muy pequeña empieza a ser gracioso porque los ojos y la boca esán fuera de la cara xD y en ciertos puntos si quiera parece que estén conectados a la cara Así que ya no es una cara, no? Así que lo que queremos que pase es que cuando cambie el tamaño de la cara (faceSize) quiero la cara y la boca Quiero que su tamaño cambie junto con la cara Para que si hago la cara ser la mitad de su tamaño quiero que la boca sea la mitad de grande tambien eso significa que quiero calcular: mouthSize y eyeSize como fracciones de faceSize Vale, vamos a resetear estas variables Y os enseñaré lo que quiero decir Vamos a empezar con mouthSize así que ahora mismo faceSize es 300 y mouthSize es 150 asi que si pensamos en ello relativamente uno del otro diriamos que faceSize es el doble de grande que mouthSize o que mouthSize es la mitad de grande que faceSize y podemos escribir eso en código como este una mitad de faceSize ok entonces este codigo dice que cojemos el valor de faceSize los multiplicamos por la mitad y lo guardamos en "mouthSize" así que si cambiamos esto de aquí el ordenador sabria lo que la mitad de eso es y eso se convertiria en mouthSize Perfecto! Eso es lo que queremos Ahora lo mismo con eyeSize Así que faceSize es 300 y eyeSize is 40 así que necesitamos que sea 40/300 40 trescientoavos de faceSize que es igual a, vamos a ver 4/30 que podemos simplificar hasta 2/15 así que vamos a decir que 2/15 por faceSize por cierto Si eres nuevo en esto de las fracciones Y esas matematicas son algo dificiles para ti puedes aprender mas sobre fracciones en KhanAcademy y volver cuando creas que estas preparado aquiSí, simplemente ves allí. OK pues vamos a probar a cambiar el tamaño de la cara otra vez Jaja! Mira! la cara y los ojos cambian su tamaño proporcionalmente a la cara pero seguramente te has dado cuenta hay algo que está mal los ojos y la boca aun salen fuera de la cara aunque estan con un tamaño mas proporcional Eso es porque aun tenemos unos numero a secas en nuestro comando elipse unos numeros que en realidad deberían deberían ser fracciones de variables Aquí, te lo enseñaré Entonces, para el "ellipse" tenemos X menos 50 para la posicion de X Esto significa que siempre estará 50 pixeles a la izquierda incluso si hacemos nuestra cara mas pequeña que 50 pix y eso no tiene nigun sentido porque eso significa que el ojo ozquierdo ni si quiera estará en la cara Así que debería ser X menos alguna fracción el tamaño de nuestra cara y podremos averiguar la fraccion de la misma manera 50 relativamente de 300 así que 50/300, 5/30, 1/6 entonces 1/6 por faceSize Y veremos otros 50 aqu´´i Asñi que podemos hacer lo mismo de la misma manera aqui tenemos 100/300 que será 1/3 un tercio faceSize este es 60 así que acabará siendo 1/5 por faceSize y aqui tenemos otros 50 así que es un sexto otra vez y luego 40 que es lo que sacamos por ahí arriba 2/15 así que 2/15 por faceSize vale, vamos a intentarlo de nuevo Oh! Mira eso! Míralo! Es bellísimo muy bueno Vale, pues vamos a recordar Habíamos creado esta variable que guardan el tamaño de la cara y simplemente guarda un numero despues tenemos estas variables "mouthSize" y "eyeSize" y las calculamos basandos en fracciones relaccionadas a faceSize para asegurarnos de que sus valores son siempre cambiados basandonos en como empezamos esta al principio luego todos los otros son calculados basandono en faceSize también para asegurarnos de que la posición dentro de la cara cambie Si faceSize cambia Whoo! Vale! Ahora que realmente entendemos como hacer variables dependiendo de los valores de otras variables podemos hacer muchas mas cosas con nuestros programas! Vamos a celebrarlo haciendo a Winston Gigante! Si, vamos Winston!