< Return to Video

Arreglos de Objetos (Versión en Video)

  • 0:01 - 0:04
    Sigamos explorando lo que podemos hacer con objetos.
  • 0:04 - 0:08
    Regresamos al programa que usamos en el tutorial de funciones.
  • 0:08 - 0:14
    Este programa tiene la función "drawWinston" que dibuja a "Winston" en un cierto punto "x,y".
  • 0:14 - 0:22
    Y aquí abajo, llamamos la función "drawWinston" 4 veces, cada vez con un diferente conjunto de coordenadas "x,y".
  • 0:22 - 0:28
    Bueno, ustedes me conocen y saben que cuando veo cuatro llamadas a la función "drawWinston" que se ven tan similares,
  • 0:28 - 0:40
    todo lo que puedo pensar es en la manera de mejorar este código usando un ciclo y llamar a la función sólo una vez dentro del ciclo, cambiando "x" y "y" en cada iteración del ciclo.
  • 0:40 - 0:47
    Así que para hacer eso, necesitamos encontrar una manera de almacenar estas posiciones de "x" y "y" en un arreglo para que podamos recorrerlo.
  • 0:47 - 0:56
    Bueno, tenemos dos conjuntos de valores, así que podemos tener dos arreglos. Uno para las posiciones de "x" y otro para las posiciones de "y".
  • 0:56 - 1:09
    Entonces, para las posiciones de "x" tenemos 99, 294, 101 y 294, y para las posiciones de "y" tenemos 117, 117, 316, 316.
  • 1:09 - 1:18
    Ok, ahora podemos recorrer el arreglo con un ciclo "for" con la variable "i = 0; i < xPositions.lenght; i++"
  • 1:18 - 1:30
    Así que recorremos cada elemento en "xPositions" y decimos "drawWinston(xPositions[i],yPositions[i]);"
  • 1:30 - 1:34
    Ok, vamos a ver si funciona, borramos esto...
  • 1:34 - 1:36
    Muy bien, funciona.
  • 1:36 - 1:45
    Entonces, ahora podemos simplemente llamar esto, ya sabes, tenemos sólo una línea de código que llama a "drawWinston", pero lo hace para cada posición en el arreglo "xPositions".
  • 1:45 - 1:58
    Podemos añadir más posiciones a esto escribiendo algo como 10, luego ponemos 1, luego 1, luego 1, luego 100, y 1.
  • 1:58 - 2:08
    Ahora esto se está volviendo un poco desastroso, y no me gusta porque en realidad es difícil ver cuál "x" está relacionada con cuál "y".
  • 2:08 - 2:21
    Y yo quisiera poder echar un vistazo y saber cuáles son mis pares "x,y", en lugar de tener que asegurarme de alinear perfectamente esto, tal vez.
  • 2:21 - 2:27
    Así que quiero encontrar una manera diferente de almacenar estas posiciones.
  • 2:27 - 2:31
    Una idea es que podemos almacenarlas como objetos.
  • 2:31 - 2:44
    Piensen en esto, cada posición en realidad tiene dos porciones de información: "x" y "y". Así que podemos tener un objeto que tenga las propiedades "x" y "y" y luego tener un arreglo de objetos con esas posiciones "x,y".
  • 2:44 - 2:46
    Hagámoslo.
  • 2:46 - 2:51
    Tenemos la variable "positions" igual a un arreglo.
  • 2:51 - 2:56
    Pero cada elemento del arreglo en lugar de ser un número, será un objeto.
  • 2:56 - 3:05
    Entonces aquí tenemos nuestras llaves y decimos "x: 99, y: 117".
  • 3:05 - 3:13
    Ok, ahora tenemos nuestra primer posición aquí, y vamos a añadir otra aquí.
  • 3:13 - 3:31
    Muy bien, "x" debe ser 294, 117, la tercera es 101, 316, y la última es 294 y 316.
  • 3:31 - 3:38
    Ok, ahora tenemos un arreglo de objetos y cada objeto tiene las propiedades "x" y "y".
  • 3:38 - 3:44
    Aquí abajo, en nuestro ciclo "for" sólo tenemos que cambiar esto para recorrer hasta "positions.lenght".
  • 3:44 - 3:49
    Después tenemos que pasar el objeto.
  • 3:49 - 3:59
    En este momento está pasando el objeto entero, pero lo que queremos es pasar la "x" y la "y", necesitamos "positions[i].x" y "positions[i].y".
  • 3:59 - 4:00
    ¡Tan tan!
  • 4:00 - 4:04
    Ahora ya nos podemos deshacer de este grupo de arreglos.
  • 4:04 - 4:13
    Genial. Esto se ve mejor y hace que el código sea más fácil de leer, y es mejor tener un código fácil de leer.
  • 4:13 - 4:27
    También hace que sea más fácil agregar algo, así que si quiero añadir uno, y de hecho voy a añadir un par, escribo "x:" es 200, "y", 200, y tenemos un "Winston" justo en medio.
  • 4:27 - 4:28
    Genial.
  • 4:28 - 4:31
    Ahora quiero mostrarles algo más interesante.
  • 4:31 - 4:39
    Noten que nuestra función actualmente acepta dos números y luego usa esos dos números.
  • 4:39 - 4:45
    Bueno, podemos cambiar nuestra función para que reciba un objeto y luego obtenga la "x" y la "y" de ese objeto,
  • 4:45 - 4:49
    significa que aquí podríamos pasar sólo ese objeto.
  • 4:49 - 4:51
    Tratemos de hacerlo.
  • 4:51 - 4:54
    Pasamos el objeto, ahora no funciona.
  • 4:54 - 5:00
    Porque nuestra función sigue esperando dos objetos y sólo está recibiendo uno, así que tenemos que cambiar eso,
  • 5:00 - 5:07
    y decirle que reciba "facePosition", y ahora tenemos un error porque "faceX" no está definida, porque antes
  • 5:07 - 5:14
    pasabamos el argumento en "faceX" pero ahora no existe, sólo estamos recibiendo un objeto.
  • 5:14 - 5:21
    Así que lo que podemos hacer es obtener la posición de "x" del objeto y ponerla en la variable "faceX"
  • 5:21 - 5:28
    Lo que estamos haciendo es recibir este objeto y sabemos que tiene la propiedad "x", así que la almacenamos en la variable "faceX".
  • 5:28 - 5:34
    Podemos hacer lo mismo con la "y", así que escribimos "faceY = facePosition.y".
  • 5:34 - 5:35
    ¡Tan tan!
  • 5:35 - 5:38
    Y luego, ya sabes, el resto de la función usa "faceX" y "faceY".
  • 5:38 - 5:44
    Ahora tenemos que estar seguros de que esté bien escrito, si ponemos "xx", no va a funcionar porque no es igual a lo que está aquí abajo
  • 5:44 - 5:48
    en nuestro arreglo de objetos, así que es necesario que coincidan.
  • 5:48 - 5:54
    Esto es muy sencillo porque ahora puedes tener arreglos de objetos, puedes tener funciones que usen objetos,
  • 5:54 - 6:00
    y puedes darte cuenta que tus programas se vuelven muy poderosos por la manera en que se estructuran los datos,
  • 6:00 - 6:05
    especialmente porque es muy frecuente que queramos usar "x" y "y" juntas. Pienso que esto
  • 6:05 - 6:09
    te será muy útil en tus programas de dibujo y animación.
  • 6:09 - 6:12
    Así que ¡practícalo y diviértete!
Title:
Arreglos de Objetos (Versión en Video)
Description:

more » « less
Video Language:
English
Duration:
06:12

Spanish, Mexican subtitles

Revisions