Bueno, ahora ya tenemos aquí la colección de los animales están guardados, acordaros dentro de esta
variable enemigos y aquí en principio no hacemos uso todavía de nada de lo que vamos a hacer es lo siguiente
el estar me lo voy a cargar porque no hay ningún tipo de configuración que hacer.
De momento aún no hemos usado el estar, ya lo sé, ya aparecerán momentos en los que vayamos a utilizar
aquí.
Lo que voy a hacer es lo siguiente Fijaros, voy a declarar una variable public y le voy a llamar Animal
Index, que es Animal Index.
Es la posición dentro de la raíz del objeto que queréis generar del animal que queréis que se genere,
que es pawnee.
Está claro que tal cual está escrito ahora, Animal Index debe ser un número que esté aquí dentro,
no en general en casi todos los lenguajes de programación los arráiz, las listas, las colecciones
empiezan en cero y acaban en el número de elementos menos 1.
Por ejemplo, ahora en Emmys tiene cuatro elementos.
El primero es el cero.
El segundo es el 1.
El tercero es el 2 y el cuarto es el 3.
Es como siempre, siempre se empieza en cero.
Y si hay cuatro objetos, el último es el tercero, nunca es el cuarto.
Por tanto, qué condición tiene que cumplir la variable Animal Index?
Para estar seguro que hay un animal tiene que cumplir dos cosas tiene que ser mayor o igual que cero.
No puede ser un número negativo.
Si buscáis cuál es el animal en posición menos 7 os va a dar un error.
Y si intentáis buscar más allá del tamaño del del éste también nos va a dar error.
Es decir, si yo tengo cuatro animales que son el cero, el 1, el 2 y el 3.
Y pregunto por el 4?
O pregunto por el 8?
Me va a dar error también?
Por tanto, hay dos cosas que siempre deben ocurrir.
El Animal Index tiene que ser mayor o igual que cero y menor estricto que el tamaño de la raya.
Por tanto, lo que voy a hacer aquí va a ser lo siguiente en el Android voy a chequear si Animal Index
es mayor o igual que cero y Animal Index es menor que 4.
El animal existe.
Qué pasa que ahora estoy en la misma?
Si alguien dice y añade un quinto animal, el programador tiene que venir a buscar este cuadro y cambiarlo
por un disco.
Y si me añade 7 más, pues tengo que venir y cambiarlo acorde a ello.
Entonces está claro que tener valores a piñón aquí en medio es una muy mala práctica.
Yo creo que ya os ha quedado medianamente claro.
El cero no va a ser un problema porque hace el acero.
Es la primera posición, siempre empiezan en cero.
El problema es dónde va a acabar el array?
Pues en este caso, para dinamizar el número de elementos que hay dentro de una raíz, utilizaremos
la variable NX.
Es la variable de array punto y aquí veis que hay una propiedad que se llama Leng Lence longitud, donde
se había expuesto cuatro Emmys punto Legg ahora vale cuatro.
Cuando haya uno más valdrá cinco.
Lo entendéis?
Evidentemente aquí podríamos poner un enlace que se ejecutará en caso contrario y que fuera de back
to log el número del enemigo a instancia no existe.
Sería un mensaje de ayuda para nosotros, sólo eso.
De hecho, además del de BAC Punto LOC, hay otros de Bags.
Hayun de VAC.
Punto.
Error, error.
Lo que error y error.
Lo que pasará será que el mensaje que salga será de color rojo.
Acordaros ese rojo que plone error.
Entonces si vais a instancias un enemigo a instancia, un animal que no existe.
Queréis el que está en una posición no adecuada?
Caéis en este ejemplo?
Me vengo aquí.
Si yo tengo que instancia cero, vais a ver que aquí no aparece ningún error.
En teoría ves que no hay errores, pero qué pasa cuando quieren instancias?
El número ocho, el número del enemigo a instancia no existe.
Veis que pone las veces que me ha saltado el error por aquí y veis que me aparece como error de color
rojo.
Por eso hay varios balestra, hay varios blogs.
El normal es el log, pero está el loco error, el exception, el log forma log warning.
Los tres acordaros son el log, que es para un mensaje normal y corriente.
El warning, que es la advertencia de color amarillo, es en plan algo ha fallado, pero el juego puede
seguir y el lock error normalmente nos lo reservamos cuando queremos hacer notar que este error podría
ser muy grave.
Por ejemplo, no se pueden distanciar más enemigos en las aserciones.
Las excepciones y demás las veremos más adelante.
Sirven para ser capaces de trocear la razón por la cual ha habido un problema.
Entonces, las aserciones y las excepciones los veremos más adelante.
Los importantes son el normal, el error y el warmi o incluso el format.
Cuando queréis formatear la salida con alguna cosa adicional?
Bueno, pues en este caso el valor de la variable animal index tiene que estar entre cero y Emmys.
Legg Y aquí lo que vamos a hacer es lo siguiente si el animal existe, lo que vamos a hacer es if se
pulsa una tecla que.
No porque es menos estricto.
Si se pulsa la tecla de instancias enemigos de escanear enemigos, en nuestro caso será imput punto
g.t y voy a usar Get It Down para evitar que si lo pulsas durante 10 frames o salgan 10 enemigos en
el mismo sitio.
If Input Get Down y en este caso vamos a utilizar el casco de punto S la letra S de vuestro teclado.
Vamos a distanciar el enemigo que está en la posición Animal Index.
Para ello lo que vamos a hacer es lo siguiente acordaros el método 10 que ya utilizado para la bala.
Qué objeto voy a instancias?
Pues de enemigos de todos los enemigos que hay dentro de la RAI.
Es que el que está en la posición animal index de enemigos recupero dentro del corchete el que está
en posición animal index a Animal Index.
Ese es el objeto donde lo voy a instancias.
De momento lo voy a hacer a piñón.
La posición va a ser niuq vector 3 que va a ser 0 en X Cervelli y arriba 28 en Z vale, eso es donde
se va a instancia y la rotación en este caso recordad que yo ya he rotado todos los animales para que
miraran para abajo.
Tengo que coger la rotación que ya tienen esos animales para que se preserve si los pongo usando cualquier
cuaterniones identity.
Como os he dicho antes, volverán a mirar para arriba.
No es lo que queremos.
Queremos utilizar la propia rotación del animal del propio Enemies en posición animal.
índex me quedo con el Transform y del Transform me quedo con el rotation, vale.
Repito, si el animal que queremos instancias se encuentra dentro de los límites permitidos entre cero
y la longitud del raid enemigos, cuando se pulse la tecla S se instancia era el enemigo que haya en
dicha posición en el 00:28 y con la misma rotación que ya tuvieran dicho enemigo.
Esto lo entendéis estas tres cosas de dónde sale cada una de ellas y porque esto es muy importante,
porque el día de mañana los problemas que me encuentro es que la gente no sabe qué poner aquí o aquí.
Esto quiere decir que si ahora aguardamos nos venimos al juego.
Y le damos al play
cada vez que pulsar la tecla S desde la 00:28 aparecerá un enemigo.
Ejemplo.
Tardará un pelín, pero ahí aparece, lo habéis hecho?
Voy a darle un par de veces para que salgan un par de vacas.
Veis que como siempre instancia el animal en la posición cero, sale el animal en la posición cero que
es la vaca.
Vamos a cambiarlo por el animal en la posición 2.
El animal en la posición 2 es el stakes.
El ciervo era la tecla.
Le doy a la tecla S un par de veces y me salen los ciervos.
Estos con las cornamentas los veis el lugar del que está en la posición 2, el que está en la posición
3 van a salir y los perritos uno detrás de otro.
Los veis?
Si entonces fijaros que ahora el truco cual es el truco es que ahora ya somos capaces de instancias
donde queremos, donde queremos.
Es la posición de arriba de los 3 que hay aquí.
El 28 me viene fantástico porque ya está por arriba.
De hecho, acordaros lo que os he dicho antes.
Si él es palmauna ayer ya está en una coordenada z que os interesa.
Podéis utilizar la z del esta humana.
Ya os acordáis que os lo he dicho entonces, como el propio Pacman ayer tiene este scrip, en el caso
que no queráis poner aquí un 28 a saco, lo podéis reemplazar ese 28 por la posición en la que se encuentra
el manager, que sería Transform Punto Opposition Punto Z.
Esto sería exactamente la posición en la que habéis colocado el manager.
Si esto por un lado, por otro lado os estáis dando cuenta que todos aparecen en el mismo sitio, entonces
aquí fijaros que cuando yo le doy a la S, independientemente de si sale el cero, si sale el 1 o si
sale el 2 o 3, los objetos o los enemigos, todos salen en la misma zona.
Entonces aquí hay dos cosas que vamos a tener que cambiar.
La primera es que el enemigo es Pawnee, no siempre sea el mismo que pueda cambiar de uno a otro de
forma aleatoria y el otro es la posición.
No quiero que cada vez que se pawnee todos aparezcan en el mismo sitio, porque yo coloco al granjero
aquí y ya me he pasado el juego sin hacer nada.
Entonces aquí hay dos cosas que habrá que cambiar dinámicamente.
Habrá que modificar el Animal Index.
Es imposible que este animal índex lo tenga que venir y cambiar a mano en el lateral correcto y la otra
para que el objeto se pawnee.
No siempre aquí.
Qué coordenada habrá que cambiar de la zona de Spawn y la X?
De hecho aquí lo podéis observar.
Veis que es la flecha de color rojo?
La flecha de color rojo es la x.
Si yo siempre es pavoneo en x igual a cero x igual a cero x igual a cero x igual a cero, siempre saldrá
en medio de la pantalla.
Como yo construí la escena.
No tiene mucho sentido escanear ni igual a 27 bases para crear una cabra volando.
Me hace gracia, pero no tiene mucho sentido.
Entonces la posición de la Z es tal cual la que está nuestro manager, la que hemos colocado, nuestro
manager.
La Y griega será el cero porque será el propio suelo para que se sustancian a nivel del suelo y la Z
habrá que cambiarlo.
La X habrá que cambiarla.
Así que vamos a ver la aleatoriedad en dos sentidos 1.
Cómo hacer que este animal índex en lugar de siempre valer lo que vale, vaya cambiando cada vez que
hacéis clic.
Y luego, en segundo lugar, cómo hacer que la coordenada X sea cada vez diferente entre ciertos márgenes
de acuerdo.