-
Estamos de regreso con "Winston"
-
Ahora tenemos dos variables "x" y "y"
-
para la posición de Winston.
-
Así que lo podemos mover a los lados,
-
hacia arriba y hacia abajo. ¡Woo! Muy lindo.
-
Ahora, vamos a reconfigurar estas variables
-
en 200 y 200.
-
Y vamos a revisar cómo funciona este programa.
-
Así que empezando aquí tenemos la variable "eyeSize",
-
que usamos para controlar el tamaño de los ojos,
-
y que es 40 de ancho y 40 de alto.
-
Y luego tenemos estas variables "x" y "y",
-
que son para posicionar el centro de la cara,
-
y las puedes ver en este comando "ellipse()",
-
que dibuja el círculo amarillo grande.
-
Y luego, aquí abajo para los ojos,
-
se usan otra vez la "x" y la "y",
-
y aquí, el ojo está posicionado en relación con el centro de la cara.
-
Así que tal vez éste esté 50 pixeles a la izquierda del centro,
-
y éste, está a 100 pixeles a la derecha del centro.
-
Ok, genial.
-
Y es por esto que podemos mover a Winston hacia arriba y hacia abajo.
-
Ahora, quiero poder controlar más cosas de la cara de Winston con variables.
-
Entonces tengo que averiguar qué más dentro del programa
-
podemos guardar en variables.
-
Para hacer eso, tengo que revisar cada línea del código,
-
y buscar lo que llamamos "hard coded numbers".
-
Estos son números, literalmente números, no son variables,
-
o variables dependientes.
-
Así que vamos a empezar aquí, en la primera llamada a "ellipse()".
-
Tenemos 300 y 300 para la anchura y la altura.
-
Estos son números, así que vamos a crear una variable
-
para usarla en lugar de esos números.
-
La llamaremos "faceSize" y le vamos a asignar 300.
-
Ahora escribimos "faceSize, faceSize;".
-
Ok, continuamos, nos saltamos los colores.
-
Ahora el comando "ellipse()" tiene variables y variables dependientes,
-
así que lo voy a dejar así por el momento.
-
Y luego, en el comando para la boca, estos están dependiendo de "x" y "y",
-
pero esto que está aquí, son números literales.
-
150 y 150.
-
Así que voy a escribir "mouthSize", es un buen nombre, es igual a 150.
-
Reemplazamos por "mouthSize, mouthSize".
-
Muy bien.
-
Ahora tenemos los tamaños de las figuras,
-
almacenados en las variables hasta arriba del programa.
-
Eso significa que es muy fácil cambiar los tamaños.
-
Como esto. ¡Woo! ¡Winston tiene hambre!
-
¡Y Winston se comió muchas donas y se puso gordísimo!
-
Muy bien, pero hay algo que no me gusta
-
del programa en este momento,
-
si cambio el tamaño de la cara, y lo hago realmente
-
pequeño, se empieza a ver chistoso.
-
Porque los ojos y la boca empiezan a salirse de la cara,
-
y llegamos a un punto en el que parece que ya no están
-
conectados con la cara, y deja de parecer una cara. ¿No?
-
Así que lo que realmente quiero que pase,
-
es que cuando cambie el tamaño de la cara,
-
quiero que el tamaño de los ojos y la boca también cambien
-
junto con la cara.
-
Así que si hago que el tamaño de la cara sea de la mitad,
-
quiero que la boca también sea de la mitad del tamaño.
-
Eso significa que quiero calcular el tamaño de la boca "mouthSize" y de los ojos "eyeSize",
-
como fracciones de "FaceSize".
-
Muy bien, voy a reconfigurar estas variables y les voy a mostrar
-
lo que quiero decir.
-
Vamos a empezar con "mouthSize",
-
en este momento "faceSize" es igual a 300,
-
y "mouthSize" es igual a 150.
-
Si pensamos en cómo se relacionan entre sí estas variables,
-
podríamos decir que "faceSize" es dos veces más grande que "mouthSize",
-
o que "mouthSize" es la mitad del tamaño que "faceSize".
-
Y eso lo podemos codificar como: 1/2 por "faceSize".
-
Ok, entonces esta línea de código nos dice
-
que toma el valor de "faceSize", lo multiplica por 1/2,
-
y lo guarda en "mouthSize".
-
Entonces si cambiamos lo que tenemos aquí,
-
tendríamos que averiguar cuál es la mitad de eso,
-
y es el valor de "mouthSize".
-
Perfecto. Eso es lo que queremos.
-
Ahora "eyeSize", entonces "faceSize" es igual a 300,
-
y "eyeSize" es igual a 40, así que esto tiene que ser
-
40 entre 300 de "faceSize", lo que en realidad es
-
4 entre 30, que podemos simplificar como 2 entre 15.
-
Entonces vamos a decir 2 entre 15, por "faceSize".
-
Por cierto, si eres inexperto en fracciones,
-
y se te hacen difíciles, puedes aprender más sobre fracciones,
-
en Khan Academy, y regresar aquí cuando sientas que estás listo.
-
Muy bien, vamos a tratar de cambiar el tamaño de la cara de nuevo.
-
¡Ajá! ¡Échale un vistazo!
-
La boca y los ojos cambian de tamaño proporcionalmente con la cara.
-
Pero probablemente te diste cuenta de que algo está mal,
-
los ojos y la boca siguen quedando fuera de la cara,
-
aunque tienen un tamaño más proporcionado.
-
Y eso es porque seguimos teniendo algunos
-
"números incrustados directamente en el código" en nuestros comandos "ellipse()".
-
Son algunos números que en realidad deberían ser fracciones
-
de variables en su lugar.
-
Les mostraré.
-
Para la elipse del ojo, tenemos "x - 50" para la posición de "x",
-
eso significa que siempre es "x - 50", aún si hacemos que
-
el tamaño de la cara sea menor que 50 pixeles.
-
Y eso definitivamente no tiene sentido, porque significa
-
que el ojo izquierdo no va a estar más en la cara.
-
Así que eso debería ser "x" menos una fracción del
-
tamaño de la cara.
-
Y podemos averiguar la fracción de la misma manera,
-
50 en relación con el tamaño original que es 300.
-
Así que 50 entre 300, 5 entre 30, 1 entre 6.
-
Entonces 1 entre 6 por "faceSize".
-
Y vimos otro 50 aquí, así que podemos hacer lo mismo, la misma expresión.
-
Aquí tenemos 100 entre 300, esto va a ser igual a 1 entre 3 por "faceSize".
-
Éste es 60, así que va a ser 1 quinto por "faceSize".
-
Y aquí tenemos otro 50 así que es igual a 1 sexto otra vez,
-
y luego 40, que lo calculamos aquí arriba, es 2 entre 15,
-
2 entre 15 por "faceSize".
-
Muy bien, vamos a probarlo otra vez.
-
¡Oh! ¡Miren eso!
-
¡Es hermoso! ¡Tan bien!
-
Muy bien, repasemos.
-
Creamos esta variable que almacena el tamaño de la cara,
-
y almacena un número.
-
Luego tenemos estas variables "mouthSize" y "eyeSize",
-
y las calculamos con base en fracciones de "faceSize", para
-
asegurarnos que sus valores siempre cambien,
-
con base en el valor con el que iniciemos la cara.
-
Luego todas las distancias también se calculan con base en "faceSize".
-
Para asegurarnos que las posiciones dentro de la cara cambien
-
si el valor de "faceSize" cambia.
-
¡Uh! Muy bien. Ahora que entendemos realmente como hacer
-
que unas variables dependan del valor de otras variables,
-
podemos hacer mucho más en nuestros programas.
-
¡Celebremos haciendo a Winston enorme!
-
¡Sí, muy bien Winston!