﻿1
00:00:04,110 --> 00:00:07,740
‫En esta lección, vamos a crear una clase de C++.

2
00:00:07,770 --> 00:00:11,310
‫Ahora necesitamos una clase que podamos usar para nuestros peones.

3
00:00:11,340 --> 00:00:15,720
‫Ahora digo peones, en plural, porque habrá dos peones diferentes en nuestro juego.

4
00:00:15,720 --> 00:00:20,280
‫Habrá un tanque que usaremos para rodar por el nivel, y habrá una

5
00:00:20,280 --> 00:00:24,870
‫torreta que será nuestro enemigo para que podamos crear una clase de peón base.

6
00:00:24,870 --> 00:00:30,050
‫Y esto va a tener la funcionalidad básica que compartirán tanto el tanque como la torreta.

7
00:00:30,060 --> 00:00:34,890
‫Y de esta manera podemos crear nuestras dos clases secundarias, el tanque y la torreta.

8
00:00:34,890 --> 00:00:40,890
‫Entonces, estos van a heredar cualidades de la clase de peones base y estas son cosas que

9
00:00:40,890 --> 00:00:47,010
‫ambos peones van a compartir, como tener la malla, tener un componente de cápsula y la capacidad de

10
00:00:47,010 --> 00:00:47,820
‫lanzar proyectiles.

11
00:00:47,820 --> 00:00:51,840
‫Ahora, vamos a entrar en todas esas características en videos futuros para este video.

12
00:00:51,840 --> 00:00:56,280
‫Solo vamos a crear la clase C++ y agregarle algunas variables básicas.

13
00:00:56,280 --> 00:01:00,990
‫Esta es nuestra motivación para crear nuestra primera clase de C++.

14
00:01:01,020 --> 00:01:06,450
‫Ahora estamos listos para comenzar a crear algunas clases de C++ para este proyecto.

15
00:01:06,630 --> 00:01:13,410
‫Ahora verá aquí abajo en el navegador de contenido que no hay carpetas para las clases de C++.

16
00:01:13,410 --> 00:01:19,770
‫Esto se debe a que aún no hemos creado ninguna, pero estamos a punto de escribir ahora para poder acceder a las

17
00:01:19,770 --> 00:01:22,140
‫herramientas y seleccionar una nueva clase de C++.

18
00:01:22,140 --> 00:01:27,690
‫Y aquí es donde vamos a elegir la clase padre para la clase que vamos a crear.

19
00:01:27,690 --> 00:01:31,740
‫Y por defecto, aquí tenemos varias opciones para elegir.

20
00:01:31,740 --> 00:01:35,330
‫Esto es algo que deberías haber visto en conferencias anteriores.

21
00:01:35,330 --> 00:01:38,280
‫Así que ahora tenemos algunas decisiones que tomar aquí.

22
00:01:38,370 --> 00:01:41,550
‫Por un lado, ¿qué clase de padres vamos a elegir?

23
00:01:41,550 --> 00:01:42,210
‫Tenemos.

24
00:01:42,210 --> 00:01:43,860
‫El primero es ninguno.

25
00:01:43,860 --> 00:01:50,910
‫Básicamente, eso nos permitiría crear una clase de C++ simple y antigua, pero vamos a necesitar alguna funcionalidad adicional.

26
00:01:50,910 --> 00:01:55,440
‫Por un lado, queremos poder colocar una instancia de este objeto en el mundo.

27
00:01:55,440 --> 00:01:58,230
‫Así que no podemos hacer eso con una clase de C++ simple y antigua.

28
00:01:58,230 --> 00:02:03,810
‫Podríamos hacer eso con un personaje, un peón o un actor, pero ¿cuál de estos es el más apropiado para

29
00:02:03,810 --> 00:02:05,250
‫lo que queremos hacer?

30
00:02:05,400 --> 00:02:10,020
‫Bueno, tenemos que dar un paso atrás y pensar qué es exactamente lo que estamos tratando de crear aquí.

31
00:02:10,050 --> 00:02:17,460
‫Estamos tratando de crear un tanque que podamos controlar y mover por el nivel y disparar proyectiles para que podamos causar

32
00:02:17,460 --> 00:02:21,570
‫daño y todas esas cosas buenas en nuestra carpeta de activos.

33
00:02:21,570 --> 00:02:28,770
‫Solo para recordarnos, tenemos esta carpeta de mallas aquí y tenemos la base del tanque y tenemos la torreta del tanque.

34
00:02:28,800 --> 00:02:32,670
‫Estas son dos mallas diferentes que estarán en nuestra clase.

35
00:02:32,670 --> 00:02:35,640
‫Y entonces necesitamos la capacidad de tener mallas.

36
00:02:35,640 --> 00:02:39,270
‫Entonces, una clase simple de C++ no tiene esa capacidad.

37
00:02:39,540 --> 00:02:41,670
‫Así que pensemos en esto por un segundo.

38
00:02:41,670 --> 00:02:44,250
‫¿Qué clase padre deberíamos usar?

39
00:02:44,250 --> 00:02:48,780
‫Bueno, la primera clase que probablemente debería venir a tu mente es la clase de actor.

40
00:02:48,780 --> 00:02:52,320
‫Ahora, la clase de actor tiene la capacidad de ubicarse en el mundo.

41
00:02:52,320 --> 00:02:53,850
‫Así que es un gran comienzo.

42
00:02:53,940 --> 00:02:57,750
‫También tiene la capacidad de tener una representación visual.

43
00:02:57,750 --> 00:03:04,080
‫Ya sea una malla o cualquier otra cosa, en realidad se puede ver una vez que lo colocas en el mundo, siempre

44
00:03:04,080 --> 00:03:07,650
‫que le des una malla o lo que sea que quieras ver.

45
00:03:07,650 --> 00:03:13,260
‫Ahora derivado de actor, tenemos la clase -- y el -- hereda todas esas cualidades

46
00:03:13,260 --> 00:03:19,830
‫de la clase actor, excepto que tiene cualidades adicionales como la capacidad de ser poseído por un controlador.

47
00:03:19,830 --> 00:03:25,980
‫Ahora, todo este asunto de la posesión es algo que entrará en más detalles más adelante, pero por

48
00:03:25,980 --> 00:03:30,060
‫ahora, solo entienda que esto significa que un jugador puede controlarlo.

49
00:03:30,060 --> 00:03:36,750
‫Entonces, si está presionando un botón del mouse o una tecla del teclado, esto se puede configurar y configurar para que

50
00:03:36,750 --> 00:03:38,580
‫podamos mover el -- alrededor.

51
00:03:38,580 --> 00:03:43,110
‫Esto suena como algo que definitivamente querríamos para nuestro tanque.

52
00:03:43,110 --> 00:03:49,410
‫Entonces, al manejar la entrada de movimiento, -- suena como una opción bastante buena ahora derivada de la clase --

53
00:03:49,410 --> 00:03:55,560
‫y por lo tanto hereda todas las cosas que -- tiene, además de todas las cosas que -- heredó

54
00:03:55,560 --> 00:03:56,880
‫de su clase principal.

55
00:03:56,880 --> 00:04:02,100
‫Tenemos la clase de personaje que tiene algunas cosas específicas del personaje.

56
00:04:02,460 --> 00:04:05,550
‫Por ejemplo, tiene algo llamado componente de movimiento del personaje.

57
00:04:05,550 --> 00:04:07,830
‫Ahora, un -- no tiene esto.

58
00:04:07,860 --> 00:04:13,980
‫Un componente de movimiento del personaje le da al personaje habilidades adicionales, como diferentes modos

59
00:04:13,980 --> 00:04:19,440
‫de movimiento, como volar, nadar, agacharse y otras cosas específicas de los personajes.

60
00:04:19,440 --> 00:04:25,560
‫La clase de personaje es buena para personajes bípedos y no va a funcionar muy bien para personajes no

61
00:04:25,560 --> 00:04:28,410
‫bípedos que no son criaturas con dos piernas.

62
00:04:28,410 --> 00:04:34,050
‫Y aunque sería genial tener un tanque volando por el nivel y lanzando bombas sobre todo

63
00:04:34,050 --> 00:04:38,940
‫lo que ve, no vamos a hacer nada tan complicado en esta sección.

64
00:04:38,940 --> 00:04:41,040
‫Solo vamos a hacer un tanque que pueda rodar.

65
00:04:41,040 --> 00:04:47,220
‫Así que realmente no necesitamos un componente de movimiento de personajes ni ninguna de esas cosas específicas de personajes especiales.

66
00:04:47,220 --> 00:04:52,380
‫Entonces, para esto, creo que es perfecto para lo que estamos tratando de lograr.

67
00:04:52,380 --> 00:04:59,490
‫Así que voy a desafiarte a crear una nueva clase de C++, crear una clase basada en -- y nombrar esta

68
00:04:59,490 --> 00:05:01,230
‫nueva clase basada en --.

69
00:05:01,230 --> 00:05:03,600
‫Ahora puede dejar todas las configuraciones como están.

70
00:05:03,670 --> 00:05:05,200
‫En el asistente de creación de clases.

71
00:05:05,200 --> 00:05:10,570
‫No necesita cambiar la ruta del archivo ni nada por el estilo, así que pause el video y cree

72
00:05:10,570 --> 00:05:13,030
‫su primera clase de C++ para este proyecto.

73
00:05:16,320 --> 00:05:18,090
‫Así que de vuelta aquí en el nivel.

74
00:05:18,120 --> 00:05:21,690
‫Así que vayamos a las herramientas y creemos una nueva clase de C++.

75
00:05:21,690 --> 00:05:24,260
‫Todavía no he creado la clase C++.

76
00:05:24,270 --> 00:05:27,180
‫Acabo de cerrar esto para volver a esa diapositiva.

77
00:05:27,180 --> 00:05:33,480
‫Pero ahora que regresé, estoy listo para crear mi primera clase de C++ para este proyecto y voy a elegir, y

78
00:05:33,480 --> 00:05:36,720
‫lo verá cada vez que pase el mouse sobre estos.

79
00:05:36,720 --> 00:05:38,370
‫Probablemente hayas visto esto antes.

80
00:05:38,400 --> 00:05:44,790
‫Recibimos una información sobre herramientas que aparece y dice: es la clase base de todos los actores que pueden ser poseídos por

81
00:05:44,790 --> 00:05:45,660
‫los jugadores.

82
00:05:45,660 --> 00:05:52,680
‫O sé que suena bastante emocionante, pero vamos a configurar esto para que se pueda mover con la entrada de un

83
00:05:52,680 --> 00:05:53,370
‫jugador.

84
00:05:53,370 --> 00:05:55,380
‫Así que esto es perfecto.

85
00:05:55,470 --> 00:06:01,020
‫Continúa diciendo que son las representaciones físicas de jugadores y criaturas en un nivel.

86
00:06:01,020 --> 00:06:07,080
‫En otras palabras, una vez que creemos este tanque, nos representará como jugadores en el mundo.

87
00:06:07,080 --> 00:06:07,950
‫Muy genial.

88
00:06:08,040 --> 00:06:15,960
‫Así que seleccione y haga clic en siguiente y nos muestra la ruta donde va a incluir esta clase en nuestro proyecto y verá

89
00:06:15,960 --> 00:06:20,070
‫que está en los tanques de sintonía de barra de origen.

90
00:06:20,070 --> 00:06:26,280
‫Ahora vamos a querer nombrar nuestro nuevo -- porque mi -- es un nombre horrendo y es muy vago.

91
00:06:26,280 --> 00:06:29,700
‫Necesitamos algo un poco más específico ahora.

92
00:06:29,700 --> 00:06:35,400
‫Vamos a planear usar esto como una clase base, lo que significa que vamos a derivar clases de esta

93
00:06:35,400 --> 00:06:38,340
‫clase para que podamos llamar a esta base --.

94
00:06:38,340 --> 00:06:43,080
‫Ahora, sé que eso no es mucho mejor que mi --, pero bueno, nos dice que esto es una base --.

95
00:06:43,080 --> 00:06:46,770
‫Esto es algo de lo que vamos a derivar clases secundarias en el futuro.

96
00:06:46,770 --> 00:06:47,730
‫Llegaremos a eso.

97
00:06:47,730 --> 00:06:52,320
‫Pero por ahora, llamaremos a esta base y haremos clic en Crear clase.

98
00:06:53,930 --> 00:06:54,590
‫Está bien.

99
00:06:54,590 --> 00:06:58,340
‫Entonces, el código de Visual Studio se ha abierto para nosotros con nuestra nueva clase.

100
00:06:58,340 --> 00:07:01,700
‫Nos hemos basado en H y en CP.

101
00:07:01,730 --> 00:07:08,180
‫Ahora podemos cerrar esta barra lateral haciendo clic en el ícono del Explorador allí, y podemos echar un vistazo a lo que el código

102
00:07:08,180 --> 00:07:09,890
‫de V ha generado para nosotros.

103
00:07:09,890 --> 00:07:16,880
‫Entonces, de manera predeterminada, obtenemos el constructor de clases, así como tres funciones: comenzar, reproducir, marcar y configurar el componente

104
00:07:16,880 --> 00:07:18,380
‫de entrada del jugador.

105
00:07:18,410 --> 00:07:21,980
‫Ahora debería estar familiarizado con Begin, Play y marque los comentarios aquí.

106
00:07:21,980 --> 00:07:23,300
‫Explique lo que hacen.

107
00:07:23,330 --> 00:07:28,790
‫Configurar el componente de entrada del jugador es algo que obtiene el peón y esta función nos permite manejar la

108
00:07:28,790 --> 00:07:34,250
‫entrada, como desde una tecla del teclado o un clic del mouse y aprenderemos más sobre cómo funciona esto en

109
00:07:34,250 --> 00:07:35,690
‫futuros videos en banda base.

110
00:07:35,840 --> 00:07:41,930
‫CP Estas funciones están definidas para nosotros, pero son bastante básicas y tampoco cambiarán eso en

111
00:07:41,930 --> 00:07:42,740
‫videos futuros.

112
00:07:42,740 --> 00:07:49,370
‫Así que en este video creamos nuestra primera clase de C++ y el próximo video discutirá los componentes y por qué nos

113
00:07:49,370 --> 00:07:51,770
‫gustaría agregar algunos a nuestra nueva clase.

114
00:07:51,800 --> 00:07:52,790
‫Te veré pronto.

