﻿1
00:00:04,420 --> 00:00:05,380
‫Olá e bem-vindo.

2
00:00:05,380 --> 00:00:09,940
‫Nesta palestra, apresentaremos este pedaço de código aqui, o intervalo de atores T,

3
00:00:09,940 --> 00:00:14,830
‫e veremos como ele nos permite iterar sobre todos os atores em um determinado nível.

4
00:00:14,980 --> 00:00:16,540
‫Vamos mergulhar e ver como funciona.

5
00:00:17,500 --> 00:00:25,240
‫Então, no momento, o peão morto do modo de jogo KML que estamos chamando de jogo terminou no controlador do jogador, mas, na

6
00:00:25,900 --> 00:00:32,110
‫verdade, o jogo terminou é uma função em todos os controladores, seja um I ou controladores de jogador.

7
00:00:32,110 --> 00:00:38,950
‫E provavelmente deveríamos notificar os controladores aéreos também que o jogo terminou e esse certamente será o caso ou

8
00:00:38,950 --> 00:00:43,690
‫tornará mais fácil fazer uma condição de vitória também porque não teremos necessariamente

9
00:00:43,690 --> 00:00:46,000
‫o jogador -- vindo aqui.

10
00:00:46,960 --> 00:00:49,900
‫Então, como vamos em frente e fazemos isso?

11
00:00:50,200 --> 00:00:55,840
‫Bom, vou criar uma nova função no modo de matar todos eles, uma função privada

12
00:00:55,840 --> 00:00:59,500
‫chamada End Game, que será responsável por esse ato.

13
00:00:59,500 --> 00:01:02,680
‫Então, acabe o jogo e vai precisar de algumas informações.

14
00:01:02,680 --> 00:01:04,720
‫Vai precisar saber quem ganhou.

15
00:01:04,720 --> 00:01:05,620
‫Foi o jogador?

16
00:01:05,670 --> 00:01:06,700
‫Tem sido o A. EU.?

17
00:01:06,730 --> 00:01:11,500
‫Então vou criar um pool aqui chamado B é o vencedor do jogador.

18
00:01:12,280 --> 00:01:18,940
‫E isso vai ser o que nos diz se devemos ou não dizer ao cara que ele venceu ou dizer ao jogador

19
00:01:18,940 --> 00:01:19,900
‫que ele venceu.

20
00:01:19,900 --> 00:01:22,600
‫Porque lembre-se aqui nosso jogo acabou.

21
00:01:22,600 --> 00:01:26,440
‫Leva Boolean dizendo ao controlador se ele é ou não um dos vencedores.

22
00:01:27,550 --> 00:01:31,900
‫Então, o que vamos ter que fazer é descobrir, antes de tudo, vamos em frente e criar a implementação.

23
00:01:31,900 --> 00:01:35,170
‫Então, vou fazer meu controle de mudança P e depois criar a implementação.

24
00:01:36,010 --> 00:01:41,620
‫E então teremos que descobrir como podemos encontrar todos os controladores em nossa cena para

25
00:01:41,620 --> 00:01:45,280
‫que possamos dizer que o jogo terminou nesses controladores.

26
00:01:46,510 --> 00:01:51,850
‫Agora, vamos fazer isso usando uma chamada de ajuda de mecanismo.

27
00:01:51,850 --> 00:01:59,110
‫Então esqueça de incluir o hash, vamos usar o engine utils dot h antes de tudo que vai trazer para

28
00:01:59,110 --> 00:02:07,630
‫o escopo o helper que eu quero e o helper é chamado T actor range e T actor range é uma coisa de

29
00:02:07,630 --> 00:02:08,230
‫modelo.

30
00:02:08,230 --> 00:02:11,290
‫Então podemos fazer os colchetes aqui.

31
00:02:11,740 --> 00:02:18,700
‫Podemos então colocar um controlador e depois os parênteses e obter o mundo.

32
00:02:18,790 --> 00:02:19,960
‫Agora o que isso vai fazer?

33
00:02:19,990 --> 00:02:27,460
‫Ele vai retornar como um objeto range, que é basicamente como uma lista que passa por todos

34
00:02:27,460 --> 00:02:28,540
‫os controladores.

35
00:02:28,930 --> 00:02:35,740
‫É por isso que temos esse parâmetro do controlador lá no mundo a. k. a o nível, e podemos usar isso

36
00:02:35,740 --> 00:02:37,150
‫em um loop completo.

37
00:02:37,240 --> 00:02:44,050
‫Então deixe-me começar a envolver isso em um loop para que possamos fazer um for sobre o controlador A.

38
00:02:44,110 --> 00:02:49,210
‫Então essa coisa que é a variável sobre a qual vamos organizar será um ponteiro de controlador,

39
00:02:49,210 --> 00:02:50,950
‫que vou chamar de controlador.

40
00:02:52,270 --> 00:02:56,110
‫E então usamos os dois pontos para o que vamos percorrer.

41
00:02:56,110 --> 00:03:02,830
‫Vai ser essa faixa T ativa e que podemos colocar nossas roupas entre parênteses e chaves.

42
00:03:03,280 --> 00:03:04,840
‫Então, o que isso está dizendo?

43
00:03:04,840 --> 00:03:11,890
‫Está dizendo que vamos fazer um loop completo em todos os controladores do mundo e será

44
00:03:11,890 --> 00:03:14,140
‫nessa variável chamada controlador.

45
00:03:15,180 --> 00:03:17,650
‫E agora há algumas coisas que você pode precisar saber.

46
00:03:17,670 --> 00:03:21,720
‫Então, uma coisa é que podemos consultar um controlador para saber se é ou não o controlador do jogador sem

47
00:03:21,720 --> 00:03:22,500
‫ter que lançar.

48
00:03:22,500 --> 00:03:24,870
‫Na verdade, podemos apenas fazer a seta do controlador.

49
00:03:24,870 --> 00:03:28,590
‫E então acho que vou precisar incluir meu controlador aqui.

50
00:03:28,590 --> 00:03:36,330
‫Então, um hash inclui no topo, vamos fazer uma estrutura de jogo para o controlador de barra H e agora tudo

51
00:03:36,330 --> 00:03:38,190
‫para concluir provavelmente funcionará.

52
00:03:38,370 --> 00:03:38,950
‫Sim, tem.

53
00:03:38,970 --> 00:03:41,730
‫Então, o que podemos fazer é, obviamente, podemos chamar de jogo terminou.

54
00:03:41,730 --> 00:03:43,410
‫Esse é o meu primeiro autocomplete aqui.

55
00:03:43,710 --> 00:03:46,290
‫Mas também podemos dizer que é o controlador do jogador.

56
00:03:46,590 --> 00:03:50,340
‫Basicamente, ele vai dizer que é essa coisa no mundo para jogar um controlador?

57
00:03:50,820 --> 00:03:58,170
‫E isso nos permitirá decidir se devemos ou não passar em verdadeiro ou falso para o jogo terminou.

58
00:03:58,500 --> 00:04:04,830
‫Então, meu desafio para você é preencher este loop chamando o jogo terminou com o parâmetro

59
00:04:04,830 --> 00:04:05,640
‫booleano correto.

60
00:04:06,330 --> 00:04:12,540
‫Então, vamos fazer isso para que basicamente seja verdade se o controlador com o qual estamos falando com o

61
00:04:12,540 --> 00:04:18,930
‫controlador atualmente no loop for for um controlador de player e seu booleano que passamos disser que o controlador

62
00:04:18,930 --> 00:04:26,040
‫de player é o vencedor também deve ser verdadeiro se não for um controlador de jogo e não o jogador, o jogador

63
00:04:26,040 --> 00:04:32,940
‫é o vencedor basicamente dizendo se este é um aliado e o cara é o vencedor false se o controlador do

64
00:04:32,940 --> 00:04:39,810
‫jogador, mas o jogador não for o vencedor e false se não for o controlador do jogador, mas o jogador for

65
00:04:39,810 --> 00:04:40,830
‫o vencedor.

66
00:04:40,830 --> 00:04:43,290
‫Você meio que vê onde isso está indo, espero.

67
00:04:43,710 --> 00:04:47,940
‫Então, pause o vídeo e experimente implementá-lo assim, você pode usar as instruções if.

68
00:04:47,940 --> 00:04:53,580
‫Você pode usar alguma outra lógica para calcular esse vídeo de pausa booleana e tentar.

69
00:04:54,840 --> 00:04:55,340
‫OK.

70
00:04:55,350 --> 00:04:55,890
‫Bem vindo de volta.

71
00:04:55,900 --> 00:04:57,890
‫Então você pode fazer isso de várias maneiras.

72
00:04:57,900 --> 00:05:05,220
‫Uma maneira pode ser dizer se a abelha é um jogador, controlar um vencedor e então vamos colocar algo na

73
00:05:05,220 --> 00:05:06,300
‫instrução if.

74
00:05:06,690 --> 00:05:14,160
‫Podemos fazer um pull up aqui para decidir que basicamente B é o controlador do jogador.

75
00:05:15,210 --> 00:05:18,750
‫O que vamos salvar do fato de fazermos um controlador.

76
00:05:19,810 --> 00:05:23,470
‫Arrow o está jogando o controle assim.

77
00:05:24,220 --> 00:05:28,120
‫E então podemos dizer, ok, bem, queremos chamar controller.

78
00:05:28,390 --> 00:05:30,790
‫O jogo de flechas terminou.

79
00:05:31,150 --> 00:05:33,070
‫Vamos passar os pontos nulos por enquanto.

80
00:05:33,370 --> 00:05:40,600
‫E então vamos dizer, bem, se é um jogador que é o vencedor e nós somos um controlador de jogador,

81
00:05:40,600 --> 00:05:43,250
‫então sim, basicamente vá com esse valor.

82
00:05:43,270 --> 00:05:44,920
‫Então jogue um controlador.

83
00:05:44,950 --> 00:05:47,830
‫Caso contrário, se não for o controlador do player, ele terá perdido.

84
00:05:48,250 --> 00:05:50,600
‫E podemos apenas negar isso para que possamos dizer.

85
00:05:50,620 --> 00:05:58,750
‫Caso contrário, vamos chamar o jogo de controle terminou com não é o controle do jogador, basicamente porque estamos dizendo

86
00:05:58,750 --> 00:06:04,630
‫que o jogador não é o vencedor, o ar é o vencedor nesta afirmação.

87
00:06:05,020 --> 00:06:11,650
‫E então o que queremos fazer é dizer que depende se eles veem o oposto de se o jogador venceu, o

88
00:06:11,650 --> 00:06:14,110
‫que quer dizer que o ar venceu.

89
00:06:14,800 --> 00:06:17,140
‫Então essa é uma maneira de fazer isso com certeza.

90
00:06:17,500 --> 00:06:22,900
‫Mas há outra maneira mais simples, que é simplesmente dizer, somos os vencedores?

91
00:06:22,960 --> 00:06:25,750
‫Então seja vencedor.

92
00:06:26,590 --> 00:06:36,520
‫E isso pode ser simplesmente dizer que se você é o controlador do jogador é igual a B é o vencedor do jogador.

93
00:06:37,030 --> 00:06:39,460
‫Agora, vamos pensar um pouco mais sobre isso.

94
00:06:39,730 --> 00:06:42,960
‫E eu vou completar isso completamente e então falaremos sobre isso.

95
00:06:42,970 --> 00:06:51,910
‫Então, vamos dizer que o jogo do chapéu do controlador terminou será o ponteiro nulo com o B é o vencedor passado

96
00:06:52,000 --> 00:06:52,840
‫aqui.

97
00:06:54,040 --> 00:06:56,350
‫Agora, por que essa afirmação funciona?

98
00:06:56,680 --> 00:06:58,090
‫Bem, vamos pensar nos casos.

99
00:06:58,090 --> 00:06:58,390
‫Direita.

100
00:06:58,750 --> 00:07:04,210
‫Então temos um controlador de jogador aqui e o jogador é o vencedor?

101
00:07:04,210 --> 00:07:05,680
‫Sim, nós somos o vencedor.

102
00:07:05,890 --> 00:07:06,670
‫E são iguais.

103
00:07:06,700 --> 00:07:07,480
‫Verdadeiro e verdadeiro.

104
00:07:08,350 --> 00:07:13,330
‫Que tal se este não for o controlador do jogador e o jogador não for o vencedor?

105
00:07:13,810 --> 00:07:15,070
‫Bem, então isso é falso.

106
00:07:15,400 --> 00:07:17,380
‫E isso aqui também é falso.

107
00:07:17,500 --> 00:07:21,520
‫Para que os dois sejam iguais e o resultado seja um vencedor.

108
00:07:21,550 --> 00:07:22,060
‫Isso é verdade?

109
00:07:22,090 --> 00:07:22,360
‫Sim.

110
00:07:22,360 --> 00:07:27,130
‫Porque se somos o eu e o eu como vencedores, devemos ser os vencedores.

111
00:07:27,880 --> 00:07:33,340
‫Caso contrário, se estes dois não forem iguais, i. e. que temos um controle aéreo, mas o

112
00:07:33,340 --> 00:07:39,130
‫jogador é o vencedor, ou temos o controle do jogador e o ar é o vencedor, então teremos um verdadeiro e falso

113
00:07:39,130 --> 00:07:40,750
‫ou um falso e verdadeiro.

114
00:07:41,260 --> 00:07:45,040
‫Esses dois não serão iguais e o booleano será avaliado como falso.

115
00:07:45,400 --> 00:07:50,950
‫Então você pode ver que em cada um dos casos e eu passei por todos os casos lá, isso acaba com a

116
00:07:50,950 --> 00:07:51,670
‫resposta certa.

117
00:07:51,670 --> 00:07:53,410
‫Então sabemos que isso é o certo.

118
00:07:53,410 --> 00:07:58,270
‫E essa é a grande coisa sobre booleanos é que normalmente você pode avaliar todos os casos porque você

119
00:07:58,270 --> 00:08:00,370
‫pode dizer, ok, bem, quais são os casos?

120
00:08:00,370 --> 00:08:01,840
‫Vai ser verdade e verdade.

121
00:08:01,840 --> 00:08:02,950
‫Vai ser verdadeiro e falso.

122
00:08:02,950 --> 00:08:03,940
‫Vai ser falso e verdadeiro.

123
00:08:03,940 --> 00:08:05,020
‫Vai ser falso e falso.

124
00:08:05,440 --> 00:08:06,910
‫Você pode avaliar todos esses casos.

125
00:08:06,910 --> 00:08:12,370
‫Se todos esses casos estiverem corretos, você saberá que tem uma declaração booleana correta.

126
00:08:13,120 --> 00:08:13,360
‫Frio.

127
00:08:13,690 --> 00:08:18,400
‫Então é assim que vamos calcular o B quando finalmente precisamos chamar nosso modo de jogo final.

128
00:08:18,400 --> 00:08:24,220
‫No momento estamos fazendo uma chamada direta para o controle do jogo terminou e o que eu realmente

129
00:08:24,220 --> 00:08:31,540
‫quero fazer aqui é ir em frente e chamar o fim do jogo e queremos passar em falso porque esta é uma

130
00:08:31,540 --> 00:08:36,550
‫situação em que o jogador realmente perdeu e é basicamente isso que queremos alcançar.

131
00:08:36,580 --> 00:08:42,280
‫Agora, mais uma coisa a notar aqui é que esses pontos nulos que

132
00:08:42,340 --> 00:08:50,500
‫estamos passando nos levarão a problemas no futuro, porque se o jogador realmente ganhou, isso tentará tirar o foco

133
00:08:50,500 --> 00:08:52,720
‫do nosso jogador piscina.

134
00:08:52,720 --> 00:09:01,030
‫E então o que queremos passar aqui é simplesmente que o foco deve estar no controlador dot get --.

135
00:09:01,750 --> 00:09:08,860
‫E isso está basicamente dizendo que você deve colocar o foco do seu próprio controlador de jogador, seja basicamente para onde sua

136
00:09:08,860 --> 00:09:10,420
‫câmera deve estar apontando?

137
00:09:10,690 --> 00:09:12,340
‫Ele ainda deve estar apontando para o seu peão.

138
00:09:12,970 --> 00:09:14,560
‫Por que é importante que façamos isso?

139
00:09:14,860 --> 00:09:17,140
‫E por que existe essa opção aqui em primeiro lugar?

140
00:09:17,140 --> 00:09:23,830
‫Bem, em muitos jogos, muitas vezes ou em muitos jogos de estilo de jogo, você pode ter que se

141
00:09:23,830 --> 00:09:27,370
‫o jogo terminou, você quer ir e seguir o peão.

142
00:09:27,370 --> 00:09:28,240
‫Esse foi o vencedor.

143
00:09:28,240 --> 00:09:34,070
‫Então imagine como um cenário de Fortnite, muitas vezes você vai e segue a pessoa que o matou.

144
00:09:34,450 --> 00:09:36,370
‫Este é o mecanismo para fazer isso.

145
00:09:36,370 --> 00:09:40,220
‫Você basicamente passa o peão da pessoa que matou.

146
00:09:40,570 --> 00:09:41,770
‫É isso que estamos fazendo no nosso jogo.

147
00:09:41,770 --> 00:09:45,340
‫Vamos continuar olhando para a Apple e se ganhamos ou morremos.

148
00:09:45,430 --> 00:09:46,930
‫Então, isso é muito bonito para a palestra.

149
00:09:46,930 --> 00:09:50,040
‫Vamos apenas compilar e ver se está funcionando.

150
00:09:50,050 --> 00:09:53,230
‫Vamos mergulhar no Unreal e apertar o play.

151
00:09:53,440 --> 00:09:55,930
‫Vamos nos matar.

152
00:09:56,080 --> 00:09:56,770
‫Ai está.

153
00:09:57,040 --> 00:09:58,720
‫Está tudo funcionando como antes.

154
00:09:58,720 --> 00:10:03,100
‫Ainda estamos recebendo essa chamada para o controlador do player e depois reiniciamos.

155
00:10:03,160 --> 00:10:03,730
‫Coisas boas.

156
00:10:03,730 --> 00:10:06,400
‫Então, nesta palestra, apenas para recapitular, o que vimos?

157
00:10:06,400 --> 00:10:14,200
‫Bem, vimos como podemos iterar sobre os atores no nível para fazer algo como chamar uma função

158
00:10:14,200 --> 00:10:16,750
‫em cada um desses atores.

159
00:10:16,930 --> 00:10:23,050
‫Na próxima aula, usaremos o intervalo do ator T novamente, desta vez para calcular se o jogador tem

160
00:10:23,050 --> 00:10:23,410
‫um.

161
00:10:23,710 --> 00:10:24,220
‫Veja isso.

