﻿1
00:00:04,390 --> 00:00:05,350
‫Olá e bem-vindo.

2
00:00:05,350 --> 00:00:11,560
‫Nesta palestra, vamos apresentar funções-membro e obter funções seguras e normais

3
00:00:11,560 --> 00:00:17,590
‫que nos permitirão saber a direção de um determinado vetor.

4
00:00:17,620 --> 00:00:19,630
‫Vamos mergulhar e ver como isso funciona.

5
00:00:20,750 --> 00:00:26,450
‫Portanto, nosso método simples para enviar a plataforma de volta na direção oposta está funcionando nas

6
00:00:26,450 --> 00:00:28,070
‫velocidades em que testamos.

7
00:00:28,310 --> 00:00:33,890
‫Mas o que acontece se eu disser, Ei, vamos fazer essa plataforma funcionar dez vezes mais rápido?

8
00:00:34,070 --> 00:00:36,410
‫Vamos jogar e ver o que acontece.

9
00:00:36,620 --> 00:00:42,380
‫Bem, de repente essas plataformas avançam bastante e não estão pairando no mesmo local

10
00:00:42,380 --> 00:00:43,490
‫de antes.

11
00:00:43,850 --> 00:00:53,240
‫E a razão para isso é porque o local atual, quando o definimos como o local inicial, não

12
00:00:53,240 --> 00:00:56,870
‫é necessariamente exatamente a distância movida.

13
00:00:56,930 --> 00:01:01,430
‫Poderíamos ter ultrapassado e isso é capturado aqui na instrução if.

14
00:01:01,430 --> 00:01:06,830
‫Estamos dizendo que a distância percorrida é maior que a distância percorrida, o que significa que teremos

15
00:01:06,830 --> 00:01:07,220
‫ultrapassado.

16
00:01:07,220 --> 00:01:11,420
‫Temos que ter overshot para ter acionado esta instrução if.

17
00:01:11,780 --> 00:01:13,270
‫Mas a questão é por quanto?

18
00:01:13,280 --> 00:01:17,780
‫E isso vai depender muito de quão grande é o tempo Delta.

19
00:01:17,780 --> 00:01:23,660
‫Podemos ultrapassar em grandes quantidades, especialmente se a velocidade da plataforma for grande, o que significa que

20
00:01:23,660 --> 00:01:26,930
‫nossa localização inicial pode se desviar com o tempo.

21
00:01:26,930 --> 00:01:28,500
‫Pode não ser constante.

22
00:01:28,520 --> 00:01:35,540
‫Portanto, a melhor maneira de fazer isso seria calcular o quão longe precisamos nos mover do local inicial original

23
00:01:35,540 --> 00:01:39,590
‫para chegar ao novo usando a distância exata do movimento.

24
00:01:39,860 --> 00:01:43,010
‫Então, vamos tentar visualizar este cálculo de ida e volta.

25
00:01:43,010 --> 00:01:46,160
‫Estamos dizendo que temos uma plataforma em seu local inicial aqui.

26
00:01:46,640 --> 00:01:53,060
‫Dizemos que tem uma velocidade que podemos representar com uma seta que é uma direção e um tamanho, e também

27
00:01:53,060 --> 00:01:57,920
‫tem uma distância que queremos que se mova, que é representada por esta chave aqui.

28
00:01:58,760 --> 00:02:05,210
‫Agora, o que estamos dizendo é que gostaríamos de descobrir o ponto exato onde a plataforma

29
00:02:05,210 --> 00:02:09,740
‫estaria no final, não ultrapassada, mas exatamente o local final.

30
00:02:10,040 --> 00:02:14,900
‫Agora, a maneira de fazer isso é tomando a direção dessa seta de velocidade.

31
00:02:14,960 --> 00:02:21,320
‫Então, na linguagem vetorial, isso é chamado de normal da seta, e basicamente reduz o tamanho

32
00:02:21,320 --> 00:02:22,550
‫a um.

33
00:02:22,550 --> 00:02:25,940
‫Então nós temos a direção, mas um tamanho de um.

34
00:02:25,940 --> 00:02:31,460
‫Então isso nos permite saber essa contagem, essencialmente o tamanho da velocidade, o quão rápido estamos indo.

35
00:02:32,090 --> 00:02:39,050
‫E então o que podemos fazer é multiplicar essa direção pela quantidade de nossa distância para nos dar uma

36
00:02:39,050 --> 00:02:45,140
‫seta que nos dê todo o movimento desde o local inicial até o local final.

37
00:02:45,140 --> 00:02:46,070
‫Exatamente.

38
00:02:46,460 --> 00:02:49,520
‫Então, vamos dar uma olhada em como podemos fazer isso em C++.

39
00:02:49,820 --> 00:02:52,400
‫O que estamos procurando é um novo local de partida.

40
00:02:52,400 --> 00:02:58,610
‫Então, vamos remover como estamos fazendo isso atualmente e teremos um local de início igual a, bem, a

41
00:02:58,610 --> 00:02:59,700
‫que será igual?

42
00:02:59,720 --> 00:03:05,060
‫Bem, vai ser igual, em primeiro lugar, ao local inicial mais alguma coisa,

43
00:03:05,060 --> 00:03:10,550
‫porque estamos começando daqui e estamos adicionando este vetor verde para chegar ao final.

44
00:03:11,000 --> 00:03:13,010
‫Então, o que é aquele vetor verde ali?

45
00:03:13,760 --> 00:03:18,710
‫Bem, é aí que precisamos obter a normal da velocidade da plataforma.

46
00:03:18,710 --> 00:03:24,680
‫E só para ficar mais fácil de entender, vou dividir isso em sua própria variável.

47
00:03:24,690 --> 00:03:32,540
‫Então, vamos criar um novo tipo de efetor, que vou chamar de direção de movimento, só

48
00:03:32,660 --> 00:03:38,000
‫para deixar bem claro o que estamos tentando armazenar nele

49
00:03:38,000 --> 00:03:47,750
‫e então vamos pegue isso do ponto de velocidade da plataforma, fique seguro, normal e depois alguns parênteses no final.

50
00:03:47,810 --> 00:03:48,890
‫Então o que está acontecendo aqui?

51
00:03:48,890 --> 00:03:50,600
‫Nós não vimos isso antes.

52
00:03:50,600 --> 00:03:54,740
‫Usamos pontos para obter os componentes do vetor, o X, Y e Z.

53
00:03:54,740 --> 00:03:55,700
‫Essas eram variáveis.

54
00:03:56,180 --> 00:04:04,520
‫Mas em C++ e na programação orientada a objetos em geral, também temos funções que existem nas classes, então

55
00:04:04,520 --> 00:04:08,480
‫podemos usar o operador DOT para obter uma delas.

56
00:04:08,480 --> 00:04:12,980
‫Usamos os dois pontos quando tentamos tirá-lo da própria classe.

57
00:04:13,370 --> 00:04:20,630
‫Mas quando queremos fazer uma operação com o próprio vetor real, então vetor de velocidade da plataforma, podemos

58
00:04:20,630 --> 00:04:25,460
‫usar o operador ponto para obter a normal do vetor vinculado.

59
00:04:25,490 --> 00:04:30,620
‫Então é isso que estamos fazendo aqui, usando uma função-membro em vez de uma variável-membro.

60
00:04:31,190 --> 00:04:37,070
‫Então temos o normal seguro da velocidade da plataforma e ponto e vírgula, o fim da linha, porque

61
00:04:37,070 --> 00:04:41,150
‫aqui temos uma variável que é essencialmente a direção do movimento.

62
00:04:41,480 --> 00:04:50,270
‫Então agora podemos usar isso na linha subsequente para fazer uma direção de movimento multiplicada pela distância

63
00:04:50,270 --> 00:04:56,690
‫de movimento configurada porque queremos mover exatamente até o final, não ultrapassar.

64
00:04:56,870 --> 00:05:01,790
‫E depois de fazermos isso, devemos realmente mover nossa plataforma para o local final.

65
00:05:01,790 --> 00:05:08,570
‫Então, vamos definir um local de ator para ser o local de início, porque, caso contrário, nossa plataforma

66
00:05:08,570 --> 00:05:14,720
‫terá ultrapassado e ultrapassado esse local final porque a atualizaremos com o local atual, que é o

67
00:05:14,720 --> 00:05:16,250
‫local de overshot.

68
00:05:16,790 --> 00:05:20,000
‫Então isso nos permite mover exatamente para o ponto final.

69
00:05:20,050 --> 00:05:23,470
‫E então comece a partir desse novo local de partida.

70
00:05:23,860 --> 00:05:28,960
‫Agora é importante atualizar a velocidade da plataforma depois de fazer tudo isso, porque a estamos

71
00:05:28,960 --> 00:05:31,430
‫usando para obter as direções de movimento.

72
00:05:31,460 --> 00:05:35,950
‫Vou atualizar a velocidade da plataforma depois de definirmos a localização do ator.

73
00:05:36,400 --> 00:05:40,660
‫Agora vamos voltar ao Unreal e clicar em compilar e ver se isso foi corrigido.

74
00:05:40,660 --> 00:05:43,750
‫O problema com nossa plataforma se movendo para trás e para frente.

75
00:05:43,990 --> 00:05:47,110
‫Vamos fechar este terminal e apertar o play.

76
00:05:47,230 --> 00:05:53,890
‫E agora, se dermos uma olhada, a plataforma está se movendo rapidamente, mas está se movendo de forma confiável em torno do local

77
00:05:53,890 --> 00:05:55,960
‫inicial e final, seria de esperar.

78
00:05:56,020 --> 00:05:58,900
‫Então isso é tudo que eu queria abordar nesta palestra, o que está correto.

79
00:05:58,900 --> 00:06:03,830
‫Um pequeno bug que pode ter surgido em algumas de nossas configurações de plataforma.

80
00:06:03,850 --> 00:06:05,140
‫Vou ver no próximo.

