﻿1
00:00:04,330 --> 00:00:05,080
‫Hola y bienvenido.

2
00:00:05,080 --> 00:00:11,230
‫En esta lección, vamos a hacer que nuestros componentes de disparo se vuelvan a imprimir cuando se vayan a

3
00:00:11,410 --> 00:00:14,770
‫un espacio vacío y cuando coloquemos la gárgola, se desbloqueará.

4
00:00:14,950 --> 00:00:17,530
‫Y si lo saco de nuevo, volverá a estar bloqueado.

5
00:00:17,980 --> 00:00:23,110
‫Y la forma en que vamos a hacer esto es extrayendo nuestra funcionalidad para encontrar si

6
00:00:23,110 --> 00:00:26,140
‫tenemos un actor aceptable en su propia función separada.

7
00:00:26,290 --> 00:00:29,140
‫Y voy a aprender acerca de las devoluciones anticipadas dentro de cuatro bucles.

8
00:00:29,380 --> 00:00:30,820
‫Para hacer eso, vamos a sumergirnos.

9
00:00:31,950 --> 00:00:36,450
‫Así que este trozo de código que tenemos y el componente tecnológico ya me está empezando a parecer una

10
00:00:36,450 --> 00:00:36,830
‫función.

11
00:00:36,840 --> 00:00:43,560
‫Esencialmente, es una función que se apodera del actor aceptable, si tenemos uno, por lo que podemos continuar

12
00:00:43,560 --> 00:00:49,470
‫con nuestro punto H del componente desencadenante y, en la sección privada, crear dicha función.

13
00:00:49,740 --> 00:00:51,810
‫Ahora, ¿cuál debería ser su tipo de retorno?

14
00:00:51,840 --> 00:00:58,920
‫Bueno, creo que debería ser un puntero de actor A, que siempre puede ser un puntero nulo si no hay un actor

15
00:00:58,920 --> 00:00:59,490
‫aceptable.

16
00:00:59,850 --> 00:01:05,160
‫Entonces podemos llamar a esto obtener un actor aceptable entre paréntesis vacíos.

17
00:01:05,160 --> 00:01:06,420
‫No necesitamos darle nada.

18
00:01:06,420 --> 00:01:12,180
‫Y como no cambia nuestra función, podemos hacerla constante.

19
00:01:12,540 --> 00:01:17,700
‫Avancemos e implementemos esto en este archivo de montón yendo a una sangría.

20
00:01:17,700 --> 00:01:26,760
‫Es darle un punto y coma del componente que activa dos puntos y reemplazarlo con llaves.

21
00:01:27,630 --> 00:01:35,490
‫Y luego, el código que queremos es básicamente el contenido del componente tick, excepto que lo que no queremos hacer

22
00:01:35,490 --> 00:01:37,440
‫es simplemente registrar eso.

23
00:01:37,440 --> 00:01:39,360
‫Hemos desbloqueado un actor aquí.

24
00:01:39,780 --> 00:01:47,250
‫Lo que queremos hacer es en el caso de que hayamos encontrado a este actor, esencialmente queremos devolverlo.

25
00:01:47,250 --> 00:01:48,810
‫Así que hay un par de maneras en que podemos hacer esto.

26
00:01:48,810 --> 00:01:56,310
‫Podríamos decir al comienzo de nuestra función que hay un puntero de actor, que será el actor de

27
00:01:56,310 --> 00:02:00,570
‫retorno, y por defecto lo configuramos como puntero nulo.

28
00:02:00,990 --> 00:02:04,170
‫Así que no hay ningún actor al que vayamos a volver.

29
00:02:04,470 --> 00:02:09,300
‫Pero cuando repasamos nuestro ciclo for y finalmente encontramos un actor que tiene la

30
00:02:09,300 --> 00:02:16,740
‫etiqueta aceptable, entonces podemos decir: Oye, el actor de retorno debería apuntar al puntero de actor que encontramos aquí en la

31
00:02:17,010 --> 00:02:17,700
‫matriz.

32
00:02:18,030 --> 00:02:22,410
‫Y luego, al final del ciclo for después de que finaliza el ciclo completo, hemos revisado a todos los actores.

33
00:02:22,680 --> 00:02:28,620
‫Podemos continuar y devolver la variable de actor de retorno porque ese es el tipo correcto.

34
00:02:29,430 --> 00:02:30,150
‫Esta bien.

35
00:02:30,420 --> 00:02:35,340
‫Pero requiere que creemos una variable y también requiere que ejecutemos todo el ciclo completo, incluso

36
00:02:35,340 --> 00:02:37,860
‫si ya hemos encontrado un actor aceptable.

37
00:02:38,550 --> 00:02:42,150
‫Entonces, una mejor manera de hacer esto es usar un retorno anticipado.

38
00:02:42,150 --> 00:02:48,180
‫Y hemos visto este tipo de cosas antes en I grab a C P donde hemos hecho esto.

39
00:02:48,180 --> 00:02:54,180
‫Si los controles físicos son iguales a un pequeño puntero, entonces regresamos y el resto del componente no

40
00:02:54,180 --> 00:02:55,080
‫necesita ejecutarse.

41
00:02:55,350 --> 00:02:59,910
‫Podemos usar el mismo tipo de eficiencia dentro de los saltos también.

42
00:03:00,300 --> 00:03:06,870
‫Entonces, lo que haré es si encontramos al actor aceptable, solo haremos un actor de regreso.

43
00:03:06,900 --> 00:03:11,750
‫Literalmente estamos devolviendo el puntero que acabamos de encontrar en este ciclo for y el resto del ciclo

44
00:03:11,790 --> 00:03:13,170
‫for no tiene que ejecutarse.

45
00:03:13,890 --> 00:03:20,280
‫Sin embargo, si llegamos al final del bucle for y no hemos encontrado nada, no hemos devuelto nada,

46
00:03:20,280 --> 00:03:23,790
‫el retorno detendría el bucle for, dejaría la función.

47
00:03:24,060 --> 00:03:30,150
‫Pero si llegamos al final, necesitamos devolver algo por defecto y aquí es donde podemos devolver

48
00:03:30,480 --> 00:03:31,680
‫un puntero nulo.

49
00:03:31,980 --> 00:03:33,390
‫Así que este es el valor predeterminado.

50
00:03:33,390 --> 00:03:35,430
‫Significa que hemos pasado por todo el bucle for.

51
00:03:35,730 --> 00:03:37,980
‫Hemos visto que no hay un actor aceptable.

52
00:03:37,990 --> 00:03:40,170
‫Ninguno de los actores se superponía con el nuestro.

53
00:03:41,330 --> 00:03:42,770
‫Con la etiqueta correcta.

54
00:03:42,830 --> 00:03:44,960
‫Así que devolvemos un puntero nulo.

55
00:03:45,380 --> 00:03:51,050
‫Ahora eso significa que tengo esta variable de actor de retorno redundante de la que puedo continuar y deshacerme.

56
00:03:51,380 --> 00:03:53,450
‫Y esto se lee realmente bastante limpio.

57
00:03:53,450 --> 00:03:57,830
‫Estamos pasando, estamos obteniendo los actores superpuestos, estamos haciendo un ciclo completo sobre ellos.

58
00:03:58,130 --> 00:04:02,600
‫Si cada actor lo probamos, ¿tiene la etiqueta aceptable?

59
00:04:02,870 --> 00:04:04,520
‫Si es así, nos detenemos allí mismo.

60
00:04:04,550 --> 00:04:05,480
‫Le devolvemos ese.

61
00:04:05,780 --> 00:04:08,180
‫Si ninguno de ellos lo tiene, devolvemos un puntero nulo.

62
00:04:08,390 --> 00:04:11,750
‫Así que vamos a desafiarte a que inicies sesión si encontramos al actor.

63
00:04:11,750 --> 00:04:14,300
‫Así que llama a nuestra función en tu componente tick.

64
00:04:14,630 --> 00:04:20,180
‫Verifique si el puntero es nulo e inicie sesión en ambos casos, ya sea que tengamos un actor o si no

65
00:04:20,180 --> 00:04:21,860
‫usamos una declaración F y otra.

66
00:04:21,860 --> 00:04:23,300
‫Pausa el video y pruébalo.

67
00:04:26,430 --> 00:04:26,780
‫Bueno.

68
00:04:26,790 --> 00:04:27,600
‫Bienvenido de nuevo.

69
00:04:27,990 --> 00:04:30,090
‫Así que volvamos a nuestros componentes tecnológicos.

70
00:04:30,090 --> 00:04:36,540
‫Lo que vamos a hacer es crear una variable, un puntero de actor, que será el actor, lo

71
00:04:36,990 --> 00:04:41,310
‫que equivale a obtener un actor aceptable que vamos a hacer.

72
00:04:41,310 --> 00:04:50,580
‫Si el actor no es igual al puntero nulo, entonces en el cuerpo de esto vamos a hacer un desbloqueo de diálogo y

73
00:04:50,580 --> 00:04:57,750
‫luego en otro otro lo registras esta vez porque ese es el comportamiento que quiero que tenga nuestro

74
00:04:57,750 --> 00:05:03,120
‫componente desencadenante y moverlo juntos. Si tienes la gárgola ahí, se desbloqueará.

75
00:05:03,120 --> 00:05:09,780
‫Va a usar el motor y se volverá a bloquear si básicamente desmarcamos la casilla de verificación al mover

76
00:05:09,780 --> 00:05:13,680
‫si eliminamos la gárgola, así que vamos a compilar eso.

77
00:05:13,890 --> 00:05:15,750
‫Así que sigamos adelante y presionemos reproducir.

78
00:05:15,960 --> 00:05:19,380
‫Puedes ver que se está cerrando porque no tenemos una gárgola ahí.

79
00:05:19,590 --> 00:05:22,530
‫Recoge la gárgola y tráela y listo.

80
00:05:22,530 --> 00:05:28,350
‫Ahora está desbloqueando, sácalo y vuelve a bloquear, quedando perfecto.

81
00:05:28,350 --> 00:05:29,970
‫Si entro, no pasa nada.

82
00:05:29,970 --> 00:05:30,870
‫Solo se está volviendo a bloquear.

83
00:05:31,350 --> 00:05:37,860
‫Así que hemos podido averiguar con éxito si tenemos algo en nuestro componente activador o

84
00:05:37,980 --> 00:05:38,610
‫no.

85
00:05:38,940 --> 00:05:40,650
‫Ahora sólo tenemos que hacer que haga algo.

86
00:05:40,650 --> 00:05:42,660
‫Y ese será el tema de la próxima conferencia.

87
00:05:42,690 --> 00:05:43,290
‫Veré eso.

