﻿1
00:00:04,420 --> 00:00:06,220
‫Hola y bienvenido de nuevo.

2
00:00:06,250 --> 00:00:13,210
‫Ahora, ya hemos creado la capacidad de manejar la muerte para el tanque y la torre, y vimos que esto

3
00:00:13,210 --> 00:00:20,200
‫implicaba algunos pasos adicionales con nuestro tanque desde que accedimos al controlador del jugador para desactivar la entrada y desactivar

4
00:00:20,200 --> 00:00:22,120
‫mostrar el cursor del mouse.

5
00:00:22,150 --> 00:00:28,270
‫Ahora nos gustaría tener nuestra propia clase de controlador de jugador personalizado para que podamos agregarle funcionalidad

6
00:00:28,300 --> 00:00:30,210
‫que manejará esto por nosotros.

7
00:00:30,220 --> 00:00:36,010
‫Y luego nos gustaría crear un plan basado en esta clase para que podamos acceder a algunas de

8
00:00:36,010 --> 00:00:42,580
‫las variables expuestas en el controlador del reproductor, como qué cursor del mouse mostrar una vez que realmente comencemos a mostrar el

9
00:00:42,580 --> 00:00:43,630
‫cursor del mouse.

10
00:00:43,660 --> 00:00:50,020
‫Así que vamos a crear una clase de controlador de jugador y agregar habilitar y deshabilitar la funcionalidad de entrada.

11
00:00:50,020 --> 00:00:54,490
‫Y luego vamos a crear un plano y configurar el tipo de cursor del mouse en planos.

12
00:00:54,520 --> 00:00:58,030
‫Ahora, crear esta clase es algo que sabes cómo hacer.

13
00:00:58,030 --> 00:01:04,480
‫Por lo tanto, creará una clase de controlador de jugador para su desafío, creará una nueva clase de C++ y

14
00:01:04,480 --> 00:01:07,300
‫elegirá el controlador de jugador como clase principal.

15
00:01:07,300 --> 00:01:11,800
‫Llámalo tanques de sintonía, controlador de jugador o algo así.

16
00:01:11,800 --> 00:01:15,760
‫Y una vez que haya terminado, cree un plano basado en esta clase.

17
00:01:15,760 --> 00:01:21,340
‫Ahora, una vez que tenga el plano, puede asignarlo como el controlador de jugador predeterminado en el plano del

18
00:01:21,340 --> 00:01:22,330
‫modo de juego.

19
00:01:22,360 --> 00:01:25,180
‫Haz esto en el modo de juego, el plano mismo.

20
00:01:25,360 --> 00:01:30,280
‫Pausa el video y crea ahora la clase de controlador de jugador para el tanque.

21
00:01:33,230 --> 00:01:33,680
‫Bueno.

22
00:01:33,680 --> 00:01:34,790
‫Así que estoy de vuelta en el editor.

23
00:01:34,790 --> 00:01:41,210
‫Voy a hacer clic con el botón derecho en nueva clase de C++ y desplazarme hacia abajo y veré que el controlador del reproductor es

24
00:01:41,210 --> 00:01:42,170
‫una opción aquí.

25
00:01:42,170 --> 00:01:48,320
‫Así que voy a seleccionar el controlador del jugador y nombraré mis nuevos tanques de sintonización del controlador del jugador.

26
00:01:49,110 --> 00:01:53,190
‫Jugador, controlador y haga clic en crear clase.

27
00:01:53,190 --> 00:01:56,790
‫Y aquí tengo mi nueva clase de controlador de jugador.

28
00:01:56,820 --> 00:02:00,030
‫Ahora el siguiente paso es crear un plan basado en esto.

29
00:02:00,030 --> 00:02:06,060
‫Así que estoy de vuelta en el editor y no te dije que hicieras esto, pero voy a crear una nueva

30
00:02:06,060 --> 00:02:09,360
‫carpeta aquí en mi carpeta de planos llamada Player Controller.

31
00:02:10,440 --> 00:02:15,480
‫Y si desea la misma estructura de carpetas, puede crear esta carpeta ahora si aún no lo ha

32
00:02:15,480 --> 00:02:19,170
‫hecho y luego mover el plano del controlador del reproductor a esta.

33
00:02:19,170 --> 00:02:23,610
‫Si no sabe cómo mover un plano de una carpeta a otra, es bastante simple.

34
00:02:23,640 --> 00:02:30,810
‫Vaya a la carpeta que contiene el plano, haga clic y arrastre a la carpeta correcta y haga clic en

35
00:02:30,810 --> 00:02:31,740
‫mover aquí.

36
00:02:31,890 --> 00:02:36,900
‫Ahora, no quiero mover mi proyectil a esta carpeta, así que solo voy a hacer clic aquí en el

37
00:02:36,900 --> 00:02:38,760
‫navegador de contenido para cancelar esa acción.

38
00:02:38,760 --> 00:02:41,370
‫Así que ahora tengo una carpeta de controlador de reproductor.

39
00:02:41,370 --> 00:02:47,760
‫Voy a hacer clic derecho y hacer clic en Blueprint Class y en esta búsqueda voy a buscar toon tanks,

40
00:02:47,760 --> 00:02:51,460
‫player controller y seleccionar esa clase y hacer clic en Select.

41
00:02:51,480 --> 00:02:57,180
‫Ahora puedo llamar a este pitido subrayado toon tanks jugador controlador.

42
00:02:57,390 --> 00:02:59,070
‫Así que ahora tengo un controlador de jugador.

43
00:02:59,070 --> 00:03:02,100
‫Ahora necesito configurar esto como el controlador de reproductor predeterminado.

44
00:03:02,100 --> 00:03:08,220
‫Así que voy a ir a la carpeta de modo de juego, abrir pitido, sintonizar tanques, modo de juego y abrir el plano completo.

45
00:03:08,220 --> 00:03:11,670
‫Editor Y aquí veo la clase de controlador de jugador.

46
00:03:11,940 --> 00:03:18,690
‫Voy a hacer clic en el menú desplegable y seleccionar BP tune tanks, player controller y compilar y guardar

47
00:03:18,690 --> 00:03:19,950
‫y cerrar eso.

48
00:03:19,950 --> 00:03:23,250
‫Así que ahora tenemos la clase de controlador de jugador personalizada.

49
00:03:23,250 --> 00:03:25,680
‫Estamos listos para agregar algunas funciones a esto.

50
00:03:25,680 --> 00:03:31,110
‫Entonces, lo que me gustaría es una función aquí que pueda establecer el estado habilitado del reproductor, ya sea que el

51
00:03:31,110 --> 00:03:34,890
‫reproductor esté habilitado o no para agregar una entrada que moverá el tanque.

52
00:03:34,890 --> 00:03:39,690
‫Ahora planeo llamar a esto desde el modo de juego cuando el actor muera.

53
00:03:39,690 --> 00:03:44,940
‫Así que voy a hacer una sección pública aquí y la función quedará anulada.

54
00:03:44,940 --> 00:03:55,020
‫Y simplemente voy a llamar a este estado habilitado del jugador, que puede tomar un booleano llamado jugador B

55
00:03:55,020 --> 00:03:55,950
‫habilitado.

56
00:03:56,550 --> 00:04:01,830
‫De esta forma, si llamamos a esta función, podemos pasar verdadero si queremos que el reproductor esté

57
00:04:01,830 --> 00:04:04,620
‫habilitado o falso si queremos que esté deshabilitado.

58
00:04:04,620 --> 00:04:09,090
‫Así que implementemos esta función en tune tanks, player, controller.

59
00:04:09,360 --> 00:04:14,100
‫CP Así que aquí está mi función y, por supuesto, necesito el nombre de la clase aquí.

60
00:04:14,100 --> 00:04:20,370
‫Así que va a ser un ajuste de tanques, jugador, controlador y está el operador de resolución de alcance.

61
00:04:20,370 --> 00:04:22,860
‫Ahora, esta función va a ser bastante simple.

62
00:04:22,860 --> 00:04:28,320
‫Verificará el valor del reproductor B habilitado, y podemos hacerlo con una simple verificación if.

63
00:04:28,320 --> 00:04:35,460
‫Entonces, voy a decir si el jugador B está habilitado y me gustaría acceder al peón y habilitar o deshabilitar la

64
00:04:35,460 --> 00:04:41,790
‫entrada y la forma de acceder al peón que posee este controlador de jugador es usar la función, obtener

65
00:04:41,790 --> 00:04:42,390
‫peón.

66
00:04:42,390 --> 00:04:47,520
‫Esto regresa y un peón y la clase de peón tiene la función.

67
00:04:47,520 --> 00:04:55,860
‫Habilitar entrada y habilitar entrada como hemos visto requiere un controlador de jugador para que podamos pasar esto.

68
00:04:56,190 --> 00:05:02,490
‫Ahora obtengo los garabatos rojos porque necesitamos incluir ese tipo de clase de peón y podemos ver

69
00:05:02,490 --> 00:05:09,090
‫fácilmente la inclusión del peón yendo a la documentación del motor irreal para un peón, o simplemente podemos

70
00:05:09,090 --> 00:05:13,890
‫ir a nuestra clase de peón base que hereda de un peón.

71
00:05:14,070 --> 00:05:19,890
‫Y debido a que hereda de un peón, hemos visto que necesita incluir el encabezado del peón allí para que

72
00:05:19,890 --> 00:05:23,430
‫pueda copiar ese marco de juego incluido, un peón de barra.

73
00:05:24,150 --> 00:05:26,850
‫Así que volvemos a sintonizar el controlador de jugador de tanques.

74
00:05:26,850 --> 00:05:30,900
‫Puedo pegar ese incluir aquí en la parte superior para deshacerme de esos garabatos rojos.

75
00:05:30,900 --> 00:05:37,470
‫Así que esto se encarga del caso cuando el reproductor B está habilitado, pero también necesitamos un caso LS aquí.

76
00:05:38,160 --> 00:05:45,210
‫En el caso de LS vamos a llamar a obtener peón y hay una función como habilitar entrada que

77
00:05:45,210 --> 00:05:50,580
‫está diseñada para deshabilitar entrada y se llama, como puede suponer, deshabilitar entrada.

78
00:05:50,580 --> 00:05:55,020
‫Y esto también requiere un controlador de jugador por el cual pasaremos en esto.

79
00:05:55,020 --> 00:06:00,480
‫Ahora el controlador del reproductor tiene que mostrar el cursor del mouse y también lo configuraremos.

80
00:06:00,480 --> 00:06:04,500
‫Y nos gustaría configurarlo en función de si el reproductor debe estar habilitado o no.

81
00:06:04,500 --> 00:06:10,950
‫Entonces, cualquiera que sea el valor booleano del reproductor B habilitado, vamos a configurar B para mostrar el cursor del mouse en ese valor.

82
00:06:10,950 --> 00:06:18,090
‫Así que vamos a decir que el cursor del mouse B sho es igual al reproductor B habilitado.

83
00:06:18,360 --> 00:06:20,730
‫Ahora aún no hemos mostrado el cursor del mouse.

84
00:06:20,730 --> 00:06:21,990
‫Vamos a llegar a esa parte.

85
00:06:21,990 --> 00:06:27,210
‫De hecho, nos gustaría ver el cursor del mouse mientras jugamos para saber hacia dónde apunta

86
00:06:27,210 --> 00:06:27,960
‫nuestro tanque.

87
00:06:27,960 --> 00:06:29,490
‫Así que llegaremos a eso pronto.

88
00:06:29,490 --> 00:06:35,490
‫Pero por ahora tenemos esta buena función en el controlador del reproductor y nos gustaría llamar a esta función desde el

89
00:06:35,490 --> 00:06:38,550
‫modo de juego ahora para mostrarles lo que quiero decir.

90
00:06:38,550 --> 00:06:44,610
‫Voy a volver al modo de juego y aquí está la función actor muerto y verás que estamos deshabilitando la entrada y estamos

91
00:06:44,610 --> 00:06:47,070
‫configurando b mostrar el cursor del mouse aquí.

92
00:06:47,070 --> 00:06:48,450
‫Entonces, la razón por la que me gustaría tener una.

93
00:06:48,540 --> 00:06:54,420
‫Función en el controlador del reproductor para que podamos simplemente llamar a esa función pasando un valor booleano.

94
00:06:54,450 --> 00:07:00,600
‫En este caso, pasaríamos falso para que se llamara a la función de entrada de desactivación y B para que el cursor

95
00:07:00,600 --> 00:07:02,570
‫del mouse se establezca en falso.

96
00:07:02,580 --> 00:07:08,880
‫Entonces, simplemente podemos llamar a esa función aquí ahora en lugar de llamar a tank get player controller que devuelve un

97
00:07:08,880 --> 00:07:09,960
‫controlador de jugador.

98
00:07:10,050 --> 00:07:15,590
‫Me gustaría tener una variable de puntero que nos permita acceder a ese controlador de jugador.

99
00:07:15,600 --> 00:07:20,560
‫Así que aquí, en los modos de juego Tune Tanks, voy a agregar una variable privada.

100
00:07:20,580 --> 00:07:27,990
‫Voy a declararlo hacia adelante y será de tanques de sintonía tipo A, jugador, controlador, eso es un

101
00:07:27,990 --> 00:07:28,800
‫puntero.

102
00:07:28,800 --> 00:07:35,640
‫Y voy a llamar a este ajuste Tank's Player Controller y puedo configurarlo aquí en el modo de juego

103
00:07:35,640 --> 00:07:39,500
‫Tune Tanks y comenzar a jugar usando estadísticas de juego.

104
00:07:39,510 --> 00:07:45,360
‫Ahora, si te estás preguntando si las estáticas del juego tenían una función de controlador de jugador, tenías razón.

105
00:07:45,570 --> 00:07:51,630
‫Esta es una de esas prácticas funciones estáticas que requiere un objeto de contexto mundial y un índice

106
00:07:51,630 --> 00:07:58,020
‫de jugador para que podamos continuar y copiar la inclusión para las estadísticas del juego y llamarlo aquí en Begin Play.

107
00:07:58,020 --> 00:08:02,970
‫Así que veo en la parte superior aquí, ya tengo estadísticas de juego, eso es porque ya lo estamos usando aquí y

108
00:08:02,970 --> 00:08:05,310
‫comenzamos a jugar para llamar a obtener jugador --.

109
00:08:05,310 --> 00:08:09,350
‫Vamos a hacer lo mismo aquí para configurar el puntero del controlador del reproductor.

110
00:08:09,360 --> 00:08:11,400
‫Ahora bien, esto es algo que usted debe saber cómo hacer.

111
00:08:11,400 --> 00:08:16,680
‫Entonces, ¿por qué no pausas el video y haces un pequeño mini desafío aquí y simplemente estableces el valor de

112
00:08:16,680 --> 00:08:18,060
‫tune tanks, player controller?

113
00:08:20,990 --> 00:08:21,470
‫Bueno.

114
00:08:21,470 --> 00:08:28,760
‫Así que vamos a decir sintonizar tanques, jugador, controlador, y lo configuraremos igual al resultado de sus estadísticas

115
00:08:28,760 --> 00:08:37,550
‫de juego, obtenga el controlador del jugador y sabemos que el objeto de contexto mundial puede ser este y el índice del jugador

116
00:08:37,550 --> 00:08:40,160
‫no es nueve sino cero .

117
00:08:40,160 --> 00:08:45,920
‫Y, por supuesto, sabemos que esto devuelve un controlador de jugador y no un controlador de jugador de tune tanks.

118
00:08:45,920 --> 00:08:49,460
‫Entonces, tal como hicimos con Tank aquí, vamos a lanzar.

119
00:08:49,460 --> 00:08:58,970
‫Así que voy a decir lanzar a un controlador de jugador de tanques de sintonización y estamos lanzando el resultado de obtener controlador de

120
00:08:58,970 --> 00:08:59,720
‫jugador.

121
00:08:59,930 --> 00:09:05,270
‫Así que ahora, después de Begin Play, tendremos los tanques tune, el controlador del jugador.

122
00:09:05,270 --> 00:09:11,870
‫Y ahora podemos subir aquí y en lugar de obtener el controlador del jugador usando obtener el controlador del jugador

123
00:09:11,870 --> 00:09:19,430
‫directamente desde el tanque, podemos verificar para asegurarnos de que nuestro controlador de jugador de tanques de sintonización variable sea válido y luego

124
00:09:19,430 --> 00:09:21,830
‫podemos llamar a esa función que hicimos.

125
00:09:21,830 --> 00:09:23,090
‫Volvamos atrás y mirémoslo.

126
00:09:23,090 --> 00:09:30,620
‫Se llama establecer el estado habilitado del jugador y aquí, en el modo de juego, nos gustaría deshabilitar la entrada y dejar de mostrar el

127
00:09:30,620 --> 00:09:33,650
‫cursor, lo que significa que pasaremos falso por esto.

128
00:09:33,650 --> 00:09:43,490
‫Así que vamos a decir tune tanks, jugador, controlador, establecer el estado habilitado del jugador y estamos pasando falso para esto y estamos

129
00:09:43,490 --> 00:09:49,340
‫usando tune tanks, jugador controlador, lo que significa que necesitamos incluir tune tanks,

130
00:09:49,340 --> 00:09:50,300
‫jugador controlador.

131
00:09:50,300 --> 00:09:56,570
‫Así que aquí en la parte superior vamos a incluir tanques de sintonización, controlador de jugador.

132
00:09:57,620 --> 00:10:00,890
‫Y ahora tenemos este tipo de OC definido.

133
00:10:00,890 --> 00:10:02,630
‫Sigamos adelante y compilemos esto.

134
00:10:02,780 --> 00:10:08,630
‫Y lo último que haremos antes de terminar con esto es ir a nuestro modelo de controlador de reproductor y

135
00:10:08,630 --> 00:10:15,320
‫me gustaría que se desplace hacia abajo hasta la sección de la interfaz del mouse y verá que dice Cursor predeterminado del mouse.

136
00:10:15,350 --> 00:10:19,730
‫Ahora podemos hacer clic en el menú desplegable y hay varios cursores diferentes para elegir.

137
00:10:19,730 --> 00:10:21,770
‫Y voy a elegir Crosshairs.

138
00:10:21,950 --> 00:10:27,830
‫Ahora, todavía no mostramos el cursor del mouse, pero una vez que comencemos el juego, mostraremos el cursor.

139
00:10:27,830 --> 00:10:33,920
‫Y cuando lo hacemos, me gusta que sea una cruz en lugar de la flecha blanca predeterminada que siempre vemos cuando miramos

140
00:10:33,920 --> 00:10:35,060
‫el cursor del mouse.

141
00:10:35,060 --> 00:10:41,330
‫Así que configure el cursor del mouse predeterminado en la cruz y podremos ver esas cruces una vez que

142
00:10:41,330 --> 00:10:43,040
‫habilitemos el cursor del mouse.

143
00:10:43,040 --> 00:10:50,540
‫Entonces, en resumen, creamos una clase de controlador de jugador personalizada y la estamos usando para habilitar o deshabilitar la entrada

144
00:10:50,540 --> 00:10:53,420
‫con una función que colocamos en esa clase.

145
00:10:53,420 --> 00:10:59,420
‫Y también estamos usando esa función para mostrar el cursor del mouse u ocultar el cursor del mouse según el

146
00:10:59,420 --> 00:11:00,290
‫booleano pasado.

147
00:11:00,290 --> 00:11:06,350
‫Y en el modelo que creamos, configuramos el tipo de cursor del mouse y vamos a ver muy pronto cómo se ve

148
00:11:06,350 --> 00:11:12,140
‫ese cursor del mouse en forma de cruz cuando comencemos a mostrar el cursor del mouse cuando comience el juego.

149
00:11:12,140 --> 00:11:12,980
‫Gran trabajo.

150
00:11:12,980 --> 00:11:18,620
‫Ahora tenemos este controlador de jugador y estamos listos para continuar implementando la funcionalidad del juego.

151
00:11:18,620 --> 00:11:20,810
‫Así que te veré en el próximo video.

