﻿1
00:00:04,510 --> 00:00:05,290
‫Olá e bem-vindo.

2
00:00:05,290 --> 00:00:10,810
‫Nesta palestra, vamos refatorar nosso gatilho de pool para que ele esteja pronto para adicionarmos mais

3
00:00:10,810 --> 00:00:11,350
‫código.

4
00:00:11,350 --> 00:00:15,190
‫No momento, estava ficando realmente fora de controle quem iria refatorá-lo para uma pequena

5
00:00:15,190 --> 00:00:18,700
‫função como essa que é realmente muito mais simples de ler.

6
00:00:18,700 --> 00:00:21,070
‫Vamos mergulhar e ver como fazer essa refatoração.

7
00:00:22,220 --> 00:00:22,430
‫OK.

8
00:00:22,430 --> 00:00:27,800
‫Então, queremos colocar um pouco de som em nosso jogo e o lugar em que faremos isso é na arma

9
00:00:27,800 --> 00:00:28,610
‫quando estivermos filmando.

10
00:00:28,610 --> 00:00:30,050
‫Esse é o primeiro porto de escala.

11
00:00:30,050 --> 00:00:33,290
‫Eu acho que um bom tipo de som de tiro, um som de impacto seria ótimo.

12
00:00:33,920 --> 00:00:39,230
‫O único problema é que quando voltei à nossa função de puxar o gatilho, notei que ficou estranhamente

13
00:00:39,230 --> 00:00:39,590
‫grande.

14
00:00:39,590 --> 00:00:41,120
‫Não cabe em uma das minhas telas.

15
00:00:41,120 --> 00:00:45,350
‫Também é um pouco difícil de ler e entender onde estaríamos colocando essa funcionalidade.

16
00:00:45,740 --> 00:00:50,840
‫Então, enquanto nos esforçamos para realmente entender qual é a funcionalidade aqui, talvez valha a pena

17
00:00:50,990 --> 00:00:56,780
‫fazer uma refatoração rápida ou colocar algumas dessas coisas em outros métodos para que não seja tão difícil de

18
00:00:56,780 --> 00:00:57,260
‫ler.

19
00:00:58,070 --> 00:01:03,140
‫Agora, se você der uma olhada neste código e tentar descobrir quais são as coisas básicas

20
00:01:03,140 --> 00:01:08,510
‫que ele está fazendo, então você verá que uma grande parte disso é apenas configurada para nossa linha.

21
00:01:08,510 --> 00:01:12,020
‫Trace esse pedaço inteiro da linha 28 até a 43.

22
00:01:12,560 --> 00:01:13,880
‫E o que estamos fazendo?

23
00:01:13,880 --> 00:01:18,950
‫Bem, estamos obtendo o peão do proprietário, verificamos o controlador do proprietário, obtemos a viewport

24
00:01:18,950 --> 00:01:23,810
‫a partir disso, obtemos o local final com base no intervalo máximo e passamos em

25
00:01:23,810 --> 00:01:26,570
‫alguns parâmetros de hit para ignorar coisas.

26
00:01:26,870 --> 00:01:33,550
‫Tudo isso é apenas configurado para nosso rastreamento de linha, então por que não extraímos isso em sua própria função aqui?

27
00:01:34,220 --> 00:01:37,550
‫Vai criar uma nova função privada bem na parte inferior.

28
00:01:37,550 --> 00:01:45,680
‫Depois de nossas variáveis, será um retorno bool porque queremos essencialmente substituir essa chamada aqui que retorna

29
00:01:45,680 --> 00:01:52,220
‫sucesso por uma que apenas nos dá o resultado de acerto também.

30
00:01:52,790 --> 00:01:59,960
‫Então, vamos fazer isso como algo que vou chamar de função de rastreamento de arma e terá alguns parâmetros

31
00:01:59,960 --> 00:02:01,490
‫de saída aqui.

32
00:02:01,520 --> 00:02:03,860
‫Ou seja, um deles vai ser o resultado de acerto.

33
00:02:03,860 --> 00:02:07,370
‫Então aperte resultado, e comercial para torná-lo uma referência.

34
00:02:07,370 --> 00:02:10,070
‫E porque não é uma referência constante, sabemos que é um parâmetro de saída.

35
00:02:10,190 --> 00:02:11,150
‫Chame isso de golpe.

36
00:02:11,150 --> 00:02:14,360
‫E, na verdade, pode haver outro que precisamos aqui.

37
00:02:14,660 --> 00:02:21,920
‫Ou seja, posso ver que temos a rotação saindo desse pedaço de código e, na verdade, estamos

38
00:02:21,920 --> 00:02:23,270
‫negando essa rotação.

39
00:02:23,270 --> 00:02:26,600
‫Então, o que realmente nos interessa é a direção da filmagem.

40
00:02:26,600 --> 00:02:28,550
‫Então talvez seja para isso que precisamos ir.

41
00:02:28,550 --> 00:02:31,850
‫Então, vou criar um parâmetro de saída do vetor F.

42
00:02:32,690 --> 00:02:37,400
‫Então vetor e comercial e vai ser nesta direção de tiro.

43
00:02:38,300 --> 00:02:41,750
‫Estas são as duas saídas que virão do rastreamento da arma.

44
00:02:42,290 --> 00:02:45,350
‫Agora vamos em frente e criar a implementação aqui.

45
00:02:46,370 --> 00:02:53,210
‫E o que queremos fazer é basicamente copiar todo esse código para isso.

46
00:02:54,620 --> 00:02:55,460
‫Veja como vai.

47
00:02:56,330 --> 00:03:00,060
‫E também queremos verificar esta foto.

48
00:03:00,080 --> 00:03:00,710
‫Direção.

49
00:03:01,520 --> 00:03:05,810
‫Pegue isso lá e cole-o um pouco antes do final.

50
00:03:05,810 --> 00:03:11,660
‫Ou talvez apenas ouça depois que tivermos nossa janela de visualização do jogador, podemos definir que a direção do tiro precisa ser

51
00:03:11,660 --> 00:03:13,100
‫igual ao negativo da rotação.

52
00:03:13,610 --> 00:03:19,160
‫Mas é importante notar aqui que, na verdade, não queremos definir uma variável local.

53
00:03:19,160 --> 00:03:22,280
‫Então, se você colocar o tipo aqui, ele definirá uma direção de tiro local.

54
00:03:22,610 --> 00:03:27,710
‫Queremos excluir isso para que ele configure a direção do tiro nos parâmetros AMP, o que na verdade

55
00:03:27,710 --> 00:03:32,340
‫significa que está definindo a direção do tiro que passaremos na função que o chama.

56
00:03:33,140 --> 00:03:34,700
‫O mesmo vale para o golpe.

57
00:03:34,700 --> 00:03:42,200
‫Precisamos remover esse acerto local para que o acerto que está sendo passado para o rastreamento de linha único por canal seja o acerto que foi

58
00:03:42,200 --> 00:03:44,030
‫passado para o rastreamento de arma.

59
00:03:45,260 --> 00:03:50,750
‫E então, finalmente, há mais alguma coisa a fazer é fazer uma linha que agora não é necessária e também isso é

60
00:03:50,750 --> 00:03:51,230
‫sucesso.

61
00:03:51,230 --> 00:03:56,180
‫Bem, só precisamos estar retornando o resultado do traço de linha único por canal.

62
00:03:56,180 --> 00:03:59,600
‫Isso será se o nosso rastreamento de armas foi bem-sucedido ou não.

63
00:03:59,870 --> 00:04:02,420
‫Então, conseguimos fazer esse recuo um pouco por último.

64
00:04:02,420 --> 00:04:06,620
‫Podemos encaixar tudo em uma tela agora, e é um pouco mais fácil de entender que, sim,

65
00:04:06,620 --> 00:04:09,140
‫tudo isso está relacionado a obter um rastro de arma.

66
00:04:09,800 --> 00:04:14,930
‫Podemos ir até o nosso CP de armas e agora podemos definir nosso sucesso base aqui.

67
00:04:14,930 --> 00:04:23,900
‫Então, sucesso do Pool B, vamos precisar definir como o rastreamento da arma e precisamos passar alguns parâmetros de saída aqui.

68
00:04:23,900 --> 00:04:26,720
‫Portanto, ainda precisamos declará-los em algum lugar se o resultado for atingido.

69
00:04:28,190 --> 00:04:29,180
‫Vai ser um deles.

70
00:04:29,440 --> 00:04:30,380
‫Só vai bater.

71
00:04:30,890 --> 00:04:36,140
‫E o outro seria um vetor F chamado direção de disparo.

72
00:04:37,490 --> 00:04:39,180
‫E esses serão repassados.

73
00:04:39,200 --> 00:04:42,170
‫Então vamos acertar primeiro, depois a direção do tiro.

74
00:04:44,090 --> 00:04:46,430
‫E então ponto e vírgula no final ali.

75
00:04:46,880 --> 00:04:49,370
‫Então isso vai tornar isso um pouco mais fácil.

76
00:04:49,640 --> 00:04:55,940
‫No entanto, não estou dizendo que também precisamos do controlador do proprietário e não quero que o rastro da arma seja

77
00:04:55,940 --> 00:04:59,680
‫responsável pelo controlador do proprietário ou que esqueça o controle do proprietário.

78
00:04:59,690 --> 00:05:03,230
‫Isso não soa como se fosse responsabilidade de um rastro de arma fazer isso.

79
00:05:03,560 --> 00:05:05,530
‫Parece bom para ele obter um hit.

80
00:05:05,540 --> 00:05:10,480
‫Parece bom para obter uma direção de tiro, mas vou traçar a linha para obter o controlador do proprietário.

81
00:05:10,490 --> 00:05:17,630
‫Então, para isso, vou colocá-lo nele, colocar todo esse código em outra função que ambos possam

82
00:05:17,630 --> 00:05:18,560
‫chamar.

83
00:05:19,130 --> 00:05:23,720
‫Então essa será uma função que retorna um controlador.

84
00:05:24,970 --> 00:05:25,540
‫Estrela.

85
00:05:26,590 --> 00:05:30,610
‫E vamos chamá-lo de controlador do proprietário do jato.

86
00:05:30,820 --> 00:05:32,080
‫E nós podemos fazer disso um.

87
00:05:32,770 --> 00:05:38,710
‫Como sabemos, não se destina a alterar nenhuma das variáveis em nossa classe de armas.

88
00:05:39,130 --> 00:05:40,740
‫Vamos criar essa implementação.

89
00:05:40,750 --> 00:05:47,380
‫Basta trazer a implementação do rastreamento da arma, corrigir qualquer recuo, se necessário.

90
00:05:47,380 --> 00:05:52,030
‫E vamos seguir em frente e simplesmente devolver o controle de proprietário.

91
00:05:52,040 --> 00:05:53,860
‫Portanto, não há necessidade de fazer uma verificação de unhas aqui.

92
00:05:54,310 --> 00:05:57,700
‫Essa verificação de unhas que precisamos fazer na função que a está usando.

93
00:05:58,300 --> 00:06:02,920
‫Então, vamos mostrar que também não precisamos definir uma variável aqui.

94
00:06:02,920 --> 00:06:04,630
‫Podemos apenas ir em frente e voltar.

95
00:06:06,620 --> 00:06:08,600
‫Então vai ser bem direto.

96
00:06:08,600 --> 00:06:10,820
‫Eu possuo um controlador, mas não completamente.

97
00:06:11,300 --> 00:06:14,820
‫E então vamos definir a variável no rastreamento de arma.

98
00:06:14,840 --> 00:06:19,310
‫Então, eu possuo um controlador vai ter o próprio controlador assim.

99
00:06:20,440 --> 00:06:26,890
‫Que então fazemos um retorno nulo para retorno nulo inicial no rastreamento de arma, que por sinal, ele precisa retornar um

100
00:06:26,890 --> 00:06:30,190
‫booleano porque o rastreamento de arma está retornando um booleano.

101
00:06:30,820 --> 00:06:36,280
‫Então podemos ir em frente e retornar false aqui porque se não conseguirmos um controlador próprio, não podemos fazer um rastreamento

102
00:06:36,280 --> 00:06:38,290
‫de arma, portanto não podemos acertar nada.

103
00:06:39,280 --> 00:06:42,640
‫E também precisamos desse controlador proprietário mais acima.

104
00:06:43,870 --> 00:06:47,590
‫Onde temos um ator de sucesso, estamos fazendo isso sofrer danos.

105
00:06:48,310 --> 00:06:54,250
‫E basicamente o que queremos fazer aqui é obter o controle do proprietário aqui dentro do nosso ator de sucesso.

106
00:06:54,250 --> 00:06:56,500
‫Então, se acertarmos um ator, obtemos o controlador proprietário novamente.

107
00:06:56,890 --> 00:07:00,220
‫Agora, eu sei que há um pouco de rastreadores de armas chamando.

108
00:07:00,220 --> 00:07:03,160
‫Pegue um controle e então faremos de novo se acertarmos um ator.

109
00:07:03,640 --> 00:07:06,250
‫Mas isso só vai acontecer toda vez que batermos em um ator.

110
00:07:06,280 --> 00:07:12,610
‫Portanto, não me importo de recalculá-lo duas vezes porque isso tornará o código um pouco mais legível sem

111
00:07:12,610 --> 00:07:16,940
‫ter que armazenar variáveis e estados que possam ficar fora de sincronia.

112
00:07:16,960 --> 00:07:17,850
‫Então lá vai.

113
00:07:17,860 --> 00:07:24,160
‫Agora temos o controlador proprietário que precisamos para sofrer danos e o gatilho da Apple está muito melhor.

114
00:07:24,250 --> 00:07:25,210
‫Então é isso para esta palestra.

115
00:07:25,210 --> 00:07:25,750
‫Um rápido.

116
00:07:25,750 --> 00:07:30,910
‫Apenas refatorando nosso gatilho para que tenhamos uma boa base para trabalhar na próxima aula.

117
00:07:31,060 --> 00:07:31,660
‫E eu vou ver isso.

118
00:07:32,770 --> 00:07:37,030
‫Ah, e parece que eu fiz um pouco de bobo aqui e eles pegam um controle.

119
00:07:37,420 --> 00:07:42,580
‫Se você tentar compilar, ele não fará nada porque esse valor de retorno não está retornando um

120
00:07:42,580 --> 00:07:43,180
‫ponteiro.

121
00:07:43,210 --> 00:07:47,590
‫Portanto, queremos retornar o ponteiro nulo neste caso imediatamente.

122
00:07:47,590 --> 00:07:50,350
‫Basicamente, não podemos obter um pull e, em seguida, não podemos obter um controlador.

123
00:07:50,350 --> 00:07:51,820
‫Então, retornamos ponteiro nulo.

