﻿1
00:00:04,380 --> 00:00:05,570
‫Olá e bem-vindo.

2
00:00:05,580 --> 00:00:11,880
‫Nesta palestra, vamos calcular a distância que nossa plataforma se moveu de seu

3
00:00:11,880 --> 00:00:17,550
‫local inicial e exibi-la no editor para verificarmos e depurarmos.

4
00:00:17,850 --> 00:00:19,650
‫Vamos mergulhar e ver como isso é feito.

5
00:00:20,720 --> 00:00:26,810
‫Então, atualmente vimos que podemos implementar a primeira parte do pseudocódigo.

6
00:00:26,810 --> 00:00:30,020
‫Nós escrevemos a plataforma MOVE para frente agora funciona.

7
00:00:30,020 --> 00:00:33,650
‫Portanto, é a plataforma de envio de volta que ainda não abordamos.

8
00:00:34,250 --> 00:00:38,750
‫E você pode ver o primeiro comentário lá é verificar o quão longe nós avançamos.

9
00:00:39,320 --> 00:00:44,630
‫Então, como vamos verificar o quanto avançamos desde o início do jogo?

10
00:00:44,960 --> 00:00:46,400
‫Bem, há dois componentes para isso.

11
00:00:46,400 --> 00:00:51,500
‫Primeiro de tudo, precisamos descobrir a diferença entre dois vetores e a distância entre os

12
00:00:51,500 --> 00:00:51,890
‫dois.

13
00:00:52,340 --> 00:00:57,440
‫E a outra coisa que precisamos descobrir é como acompanhar de onde começamos.

14
00:00:57,440 --> 00:01:00,410
‫Bem, a primeira parte é relativamente simples.

15
00:01:00,410 --> 00:01:08,150
‫Felizmente, tudo o que temos a fazer é ir para nossa plataforma móvel Dot H e queremos criar uma nova

16
00:01:08,150 --> 00:01:12,050
‫variável aqui, mas não uma que seja exposta a blueprints.

17
00:01:12,050 --> 00:01:19,010
‫Pela primeira vez, esta é apenas uma variável apenas para C++, então não precisamos colocar uma nova propriedade sobre ela.

18
00:01:19,550 --> 00:01:27,680
‫E será um vetor F chamado posição inicial ou localização para usar a mesma terminologia usada no

19
00:01:27,680 --> 00:01:28,430
‫Unreal.

20
00:01:29,000 --> 00:01:33,980
‫E não vamos definir isso com nenhum valor de cara porque não faria nenhum sentido.

21
00:01:33,980 --> 00:01:34,790
‫O local de início.

22
00:01:34,790 --> 00:01:39,380
‫Ainda não sabemos, mas saberemos no Begin Play.

23
00:01:39,410 --> 00:01:40,730
‫Então é isso que vamos fazer.

24
00:01:40,730 --> 00:01:44,960
‫Vamos passar para o C++ Olympic In-Play após a super aposta in-play.

25
00:01:45,230 --> 00:01:51,050
‫Vamos definir nosso local de início para que possamos dizer o local de início.

26
00:01:51,380 --> 00:01:57,200
‫Lembro que não colocamos o vetor aqui na frente disso porque estamos tentando nos referir a uma variável

27
00:01:57,200 --> 00:02:00,230
‫de classe em vez de criar uma variável local.

28
00:02:00,620 --> 00:02:07,310
‫Então, vamos definir este local inicial igual ao local GET Act porque no início da peça o

29
00:02:07,520 --> 00:02:09,590
‫ator está no início.

30
00:02:09,800 --> 00:02:15,530
‫Então nós definimos o local inicial e isso agora significa que temos uma variável que dura por toda a

31
00:02:15,530 --> 00:02:18,440
‫instância desta classe, então podemos usá-la e pegar também.

32
00:02:18,920 --> 00:02:21,650
‫E temos uma variável que podemos tentar encontrar a distância entre elas.

33
00:02:21,650 --> 00:02:27,590
‫Podemos dizer: Ei, até que ponto a localização atual se desviou daquela localização inicial?

34
00:02:27,590 --> 00:02:32,750
‫Bem, para poder fazer isso, preciso adicionar um pouco mais de sintaxe C++ ao nosso glossário.

35
00:02:32,750 --> 00:02:38,510
‫Primeiro, ele será chamado de Scope Resolution Operator, que é um pouco confuso, mas na verdade

36
00:02:38,840 --> 00:02:44,120
‫é esse operador de dois pontos que já vimos em um arquivo C++ antes.

37
00:02:44,630 --> 00:02:51,950
‫E essencialmente tudo o que ele faz é permitir que você olhe dentro de uma classe da mesma forma que o operador DOT, permite

38
00:02:52,220 --> 00:02:55,430
‫que você olhe dentro de uma instância de uma classe.

39
00:02:55,430 --> 00:02:57,740
‫Então, vamos dar uma olhada nisso com um pouco mais de detalhes.

40
00:02:58,160 --> 00:03:04,940
‫Sabemos que a função tick pertence à classe de plataforma móvel, mas não pertence a uma instância

41
00:03:04,940 --> 00:03:06,140
‫específica dessa classe.

42
00:03:06,140 --> 00:03:12,950
‫Todas as instâncias de plataforma móvel compartilham a mesma implementação de tick, que é o que significa ser uma

43
00:03:12,950 --> 00:03:13,580
‫classe.

44
00:03:13,850 --> 00:03:21,020
‫Portanto, o operador de resolução do escopo aqui entre a plataforma móvel e o Tick está nos dizendo que esse é

45
00:03:21,020 --> 00:03:24,380
‫o tick que pertence à classe da plataforma móvel.

46
00:03:24,380 --> 00:03:30,800
‫Da mesma forma que anteriormente estávamos usando o operador ponto para obter o x que pertence à localização

47
00:03:30,800 --> 00:03:31,550
‫atual.

48
00:03:32,060 --> 00:03:39,650
‫A localização atual era uma instância específica de um vetor F, mas podemos usar isso para obter funções

49
00:03:39,650 --> 00:03:46,160
‫que pertencem à classe vetorial e não são executadas em uma instância específica dessa classe.

50
00:03:46,460 --> 00:03:50,450
‫Então, um exemplo é obter a distância entre dois vetores.

51
00:03:50,450 --> 00:03:56,930
‫A maneira como fazemos isso no Unreal é usar uma função que está na classe vetorial.

52
00:03:56,930 --> 00:04:04,970
‫Então, faríamos o vetor F, depois dois pontos e dois pontos para olhar dentro dessa classe em quais funções ela tem disponível

53
00:04:04,970 --> 00:04:07,070
‫para nós e podemos ver.

54
00:04:07,070 --> 00:04:11,450
‫E agora chamo sua atenção para o preenchimento automático que está aparecendo neste momento.

55
00:04:11,450 --> 00:04:17,270
‫Eu não mencionei isso no passado, mas quando estamos fazendo essas operações, na verdade estamos

56
00:04:17,270 --> 00:04:23,480
‫tentando ser inteligentes e nos dizer quais funções estão disponíveis dentro de toda essa classe de vetor f.

57
00:04:23,810 --> 00:04:25,280
‫E você pode ver que há alguns deles.

58
00:04:25,280 --> 00:04:29,690
‫O que estamos procurando é chamado Dist Short para distância.

59
00:04:29,840 --> 00:04:34,850
‫Agora você também notará que existe uma na verdade chamada de distância e que na verdade é sinônimo.

60
00:04:34,850 --> 00:04:39,950
‫Poderíamos usar qualquer um deles, mas vou usar o mais curto para manter o código

61
00:04:39,950 --> 00:04:42,380
‫mais conciso e podemos abrir os parênteses.

62
00:04:42,680 --> 00:04:50,180
‫E, novamente, o preenchimento automático vem em nosso auxílio, pois está nos dizendo o que leva como argumentos.

63
00:04:50,180 --> 00:04:57,110
‫Podemos ver que o primeiro argumento é um vetor três D e o segundo é um efeito para 3D também.

64
00:04:57,320 --> 00:05:03,410
‫Então eu sou o fato de que é chamado de Fator 3D aqui é um pouco estranho, mas é basicamente pedir um

65
00:05:03,410 --> 00:05:04,160
‫vetor F.

66
00:05:04,430 --> 00:05:08,720
‫Então está dizendo que se você passar dois argumentos, ambos são fatores.

67
00:05:09,110 --> 00:05:15,080
‫Eu vou te dizer o meu valor de retorno que é este bit aqui do lado esquerdo será um duplo.

68
00:05:15,110 --> 00:05:18,590
‫Agora, um double é essencialmente apenas um float mais preciso.

69
00:05:18,590 --> 00:05:20,000
‫Então poderíamos dizer essencialmente.

70
00:05:20,280 --> 00:05:22,230
‫Isso é um flutuador saindo daqui.

71
00:05:22,230 --> 00:05:25,710
‫A expressão que criamos cria um float.

72
00:05:26,550 --> 00:05:27,000
‫Impressionante.

73
00:05:27,030 --> 00:05:32,450
‫Então o que vamos fazer é tentar encontrar a distância entre o local inicial.

74
00:05:32,460 --> 00:05:36,450
‫Então, vamos digitar start location como o primeiro argumento.

75
00:05:36,720 --> 00:05:40,440
‫E então o segundo será o local atual.

76
00:05:40,950 --> 00:05:45,300
‫Agora, não se preocupe, neste estágio, não importa de que maneira colocamos essa rodada porque a

77
00:05:45,300 --> 00:05:47,550
‫distância entre dois vetores será a mesma.

78
00:05:47,550 --> 00:05:51,990
‫Quer você comece de A para B ou de B para A, sempre será a mesma distância.

79
00:05:52,440 --> 00:05:54,510
‫Então, poderíamos ter colocado isso de qualquer maneira, se você quiser.

80
00:05:55,140 --> 00:05:59,310
‫Então agora temos uma expressão que retorna um float.

81
00:05:59,580 --> 00:06:05,430
‫Então, eu gostaria de desafiá-lo a atualizar uma nova propriedade usando esta expressão para que possamos ver qual é

82
00:06:05,430 --> 00:06:06,600
‫o seu valor.

83
00:06:07,020 --> 00:06:13,380
‫Então crie uma nova propriedade de você float e chame-a como quiser e, em seguida, atualize isso a cada tomada

84
00:06:13,380 --> 00:06:19,350
‫com o valor de f vector dest e, em seguida, jogue o jogo e veja o que acontece.

85
00:06:19,350 --> 00:06:21,660
‫Você obtém a saída que você esperaria?

86
00:06:21,690 --> 00:06:24,420
‫Aumenta tão rapidamente quanto você esperaria?

87
00:06:24,750 --> 00:06:26,460
‫Pause o vídeo e vá em frente.

88
00:06:29,800 --> 00:06:30,310
‫OK.

89
00:06:30,310 --> 00:06:30,940
‫Bem vindo de volta.

90
00:06:30,970 --> 00:06:34,480
‫Então vamos criar, em primeiro lugar, a nova propriedade.

91
00:06:34,810 --> 00:06:40,280
‫Então, vou colocar isso acima do nosso local inicial para agruparmos todas as propriedades.

92
00:06:40,280 --> 00:06:45,550
‫Eu vou ter uma nova edição de propriedade em qualquer lugar, um fato real.

93
00:06:45,550 --> 00:06:47,050
‫Não precisamos ser capazes de editar isso.

94
00:06:47,050 --> 00:06:51,400
‫Então você pode imaginar que em qualquer lugar significa que você pode editá-lo.

95
00:06:51,700 --> 00:06:59,320
‫Bem, também temos um visível em qualquer lugar que não nos permite editá-lo, mas nos permite vê-lo.

96
00:06:59,410 --> 00:07:01,030
‫Então é isso que eu vou usar no lugar.

97
00:07:01,330 --> 00:07:05,320
‫Vou deixar a categoria desativada aqui para simplificar, porque estamos apenas usando essa variável para poder

98
00:07:05,320 --> 00:07:06,910
‫ver o que está acontecendo.

99
00:07:07,240 --> 00:07:13,270
‫Será um tipo float, como mencionei, e vou chamar isso de distância movida para que fique claro

100
00:07:13,270 --> 00:07:15,820
‫o que estamos vendo no inspetor.

101
00:07:16,180 --> 00:07:22,300
‫E vou definir seu padrão para menos um apenas para que saibamos que o atualizamos.

102
00:07:22,300 --> 00:07:25,000
‫Se disser menos um, sabemos que a atualização não foi concluída.

103
00:07:25,600 --> 00:07:27,190
‫Então eu vou tomar essa distância movida.

104
00:07:27,580 --> 00:07:33,880
‫Vamos passar para a nossa implementação e vamos definir a distância movida é igual a afetar a

105
00:07:33,880 --> 00:07:36,700
‫distância entre dois pontos e dois pontos.

106
00:07:36,700 --> 00:07:41,590
‫Então, usando esse operador de resolução de escopo para obter a função de distância e, em seguida, terminar a linha

107
00:07:41,590 --> 00:07:42,970
‫com um ponto e vírgula.

108
00:07:43,540 --> 00:07:44,050
‫Pode deixar.

109
00:07:44,050 --> 00:07:50,110
‫Então, vamos seguir em frente no Unreal e apertar o botão de compilação e podemos seguir em frente e fechar o

110
00:07:50,110 --> 00:07:50,620
‫terminal.

111
00:07:50,800 --> 00:07:55,570
‫E devemos ver essa distância movida, aparecendo como menos um.

112
00:07:55,570 --> 00:08:00,580
‫Você pode ver que está acinzentado porque não posso editá-lo porque está visível, não edite de qualquer maneira.

113
00:08:01,210 --> 00:08:07,390
‫Então vamos em frente e aperte o play e vamos ter que ter certeza de selecionar a plataforma

114
00:08:07,390 --> 00:08:12,910
‫móvel no contorno e podemos dar uma olhada na distância movida aqui e você pode ver

115
00:08:12,910 --> 00:08:17,950
‫que a propriedade está ocupando rapidamente cerca de 1 a 300 por segundo.

116
00:08:17,950 --> 00:08:24,160
‫Então está indo na velocidade que eu esperaria, ou seja, 100 por segundo.

117
00:08:24,170 --> 00:08:25,780
‫Então parece um sucesso.

118
00:08:25,780 --> 00:08:30,790
‫Conseguimos calcular a distância percorrida e também visualizá-la.

119
00:08:30,850 --> 00:08:31,390
‫Coisas boas.

120
00:08:31,390 --> 00:08:32,980
‫Vejo você na próxima palestra.

