﻿1
00:00:04,460 --> 00:00:05,430
‫Olá e bem-vindo.

2
00:00:05,430 --> 00:00:11,630
‫Nesta palestra, veremos como podemos definir nossa plataforma móvel usando uma velocidade vetorial em suas variáveis

3
00:00:11,630 --> 00:00:12,650
‫de membro.

4
00:00:12,980 --> 00:00:18,680
‫E vamos ver como podemos tornar sua taxa de quadros de movimento independente usando algo chamado

5
00:00:18,680 --> 00:00:19,550
‫tempo Delta.

6
00:00:19,550 --> 00:00:20,660
‫Ok, vamos mergulhar.

7
00:00:21,260 --> 00:00:27,900
‫Então, até este ponto, estávamos apenas atualizando um único componente de nosso vetor de cada vez.

8
00:00:28,310 --> 00:00:31,010
‫Agora, e se eu lhe disser que não temos que fazer dessa maneira?

9
00:00:31,010 --> 00:00:35,840
‫E se pudermos atualizar todo o vetor em uma certa quantidade de uma só vez?

10
00:00:36,230 --> 00:00:36,890
‫Bem, nós podemos.

11
00:00:36,920 --> 00:00:41,390
‫Vetores podem ser adicionados a outros fatores se vimos na seção anterior.

12
00:00:41,390 --> 00:00:47,180
‫Então, o que podemos fazer é ir para nossa plataforma móvel para H e criar algo que

13
00:00:47,180 --> 00:00:53,300
‫é nossa plataforma móvel, o vetor de velocidade que nos diz a direção e a velocidade em que queremos ir.

14
00:00:53,690 --> 00:01:01,100
‫Então, a maneira como fazemos isso é criar um U de propriedade bastante familiar e vamos editá-lo

15
00:01:01,280 --> 00:01:07,520
‫em qualquer lugar para que fique visível no inspetor e, em seguida, será um

16
00:01:07,520 --> 00:01:15,710
‫vetor do tipo F, como fizemos antes, e vamos chamá-lo de velocidade da plataforma e podemos dar-lhe algo por enquanto.

17
00:01:15,710 --> 00:01:23,060
‫Então vamos fazer um construtor de vetor F e então vamos dizer centenas no componente X e zero e zero

18
00:01:23,060 --> 00:01:26,720
‫nos outros e então ponto e vírgula para terminar.

19
00:01:27,110 --> 00:01:32,900
‫E eu quero mostrar a você apenas mais um truque aqui é que junto com a edição, em qualquer lugar podemos colocar

20
00:01:32,900 --> 00:01:35,210
‫outros argumentos separados por vírgula para este U.

21
00:01:35,210 --> 00:01:38,390
‫Coisa de propriedade, que se parece um pouco com uma função.

22
00:01:38,390 --> 00:01:46,100
‫Na verdade, você pode colocar um que é chamado de categoria com C maiúsculo e depois colocar o sinal de igual.

23
00:01:46,100 --> 00:01:50,810
‫E eu não costumo deixar um espaço entre estes são sinais de igualdade categoria igual.

24
00:01:50,810 --> 00:01:54,110
‫E então você pode dar uma categoria que você quer que apareça.

25
00:01:54,440 --> 00:01:58,160
‫Aqui embaixo você pode ver que existem categorias para replicação de renderização de transformação.

26
00:01:58,160 --> 00:02:03,020
‫Esses são os tipos de categorias que queremos chamar de plataforma móvel para que tenhamos um tipo

27
00:02:03,020 --> 00:02:05,840
‫de categoria de plataforma móvel para colocar essas variáveis.

28
00:02:05,990 --> 00:02:10,370
‫E note que eu uso aspas duplas nessa categoria.

29
00:02:10,670 --> 00:02:11,840
‫Essa é a sintaxe correta.

30
00:02:11,840 --> 00:02:13,010
‫Você precisa incluí-los.

31
00:02:13,790 --> 00:02:22,700
‫E então o que podemos fazer é usar essa nova variável de membro no C++.

32
00:02:22,700 --> 00:02:29,480
‫Então, em vez de definir o componente X da localização atual, deixe-me remover completamente essa

33
00:02:29,480 --> 00:02:42,080
‫linha e reescrevê-la como a localização atual é igual à localização atual mais a velocidade da plataforma, como, digamos, coloque ponto e vírgula no final da linha e

34
00:02:42,080 --> 00:02:48,590
‫vamos para o Unreal e clique em compilar e veja como isso vai.

35
00:02:48,770 --> 00:02:50,480
‫Então isso foi compilado com sucesso.

36
00:02:50,480 --> 00:02:56,630
‫E você pode ver que agora tenho esta seção de plataforma móvel na minha plataforma móvel com uma velocidade de plataforma

37
00:02:56,630 --> 00:02:59,120
‫e seu componente x está definido como 100.

38
00:02:59,120 --> 00:03:00,770
‫O que acontece se eu for e apertar o play?

39
00:03:00,920 --> 00:03:05,810
‫Bem, a plataforma acelera rapidamente na distância porque estou adicionando cem unidades a cada

40
00:03:05,810 --> 00:03:06,260
‫quadro.

41
00:03:06,620 --> 00:03:07,940
‫Isso é muito.

42
00:03:08,210 --> 00:03:13,760
‫Mas eu quero que ele se mova a uma velocidade de cerca de 100 centímetros por segundo.

43
00:03:13,760 --> 00:03:14,960
‫Isso é apenas um metro por segundo.

44
00:03:14,960 --> 00:03:16,310
‫Não é muito rápido.

45
00:03:16,700 --> 00:03:18,860
‫Então, por que está indo tão rápido?

46
00:03:18,980 --> 00:03:20,390
‫Bem, por causa da minha taxa de quadros.

47
00:03:20,390 --> 00:03:23,810
‫Bem, se eu estivesse em um sistema mais lento, estaria se movendo mais devagar.

48
00:03:23,810 --> 00:03:25,880
‫E se eu estivesse em um sistema mais rápido, ele estaria se movendo mais rápido.

49
00:03:25,880 --> 00:03:26,960
‫Isso não parece fazer sentido.

50
00:03:27,320 --> 00:03:29,900
‫Então, vamos falar sobre o uso do tempo Delta.

51
00:03:29,900 --> 00:03:31,190
‫O que é hora Delta?

52
00:03:31,760 --> 00:03:38,900
‫Bem, usar o tempo Delta no Unreal pode nos dizer quanto tempo cada quadro levou para ser executado foi o tempo Delta.

53
00:03:38,900 --> 00:03:45,650
‫Bem, se você for ao código do Visual Studio, verá que o tempo Delta é uma variável mencionada aqui no início

54
00:03:45,650 --> 00:03:46,610
‫do take.

55
00:03:46,610 --> 00:03:49,280
‫Este é realmente um parâmetro de entrada.

56
00:03:49,280 --> 00:03:51,500
‫É a entrada para nossa função.

57
00:03:51,770 --> 00:03:52,970
‫Então podemos usar aqui.

58
00:03:53,150 --> 00:03:58,160
‫Essencialmente, como usamos uma variável local, podemos usá-la dentro do corpo da função tick.

59
00:03:58,940 --> 00:04:01,490
‫Então, ele nos diz quanto tempo um quadro levou para ser executado.

60
00:04:01,490 --> 00:04:02,570
‫Mas por que isso é importante?

61
00:04:02,570 --> 00:04:09,620
‫Porque quando multiplicamos algo pelo tempo delta, isso essencialmente torna a taxa de quadros do nosso jogo independente, o que basicamente significa

62
00:04:09,620 --> 00:04:14,570
‫que o jogo se comporta da mesma forma em um computador rápido ou lento.

63
00:04:14,690 --> 00:04:20,090
‫Então vamos dar uma olhada em um exemplo ilustrativo se eu quiser mover algo a cada segundo uma unidade para

64
00:04:20,090 --> 00:04:20,930
‫a esquerda.

65
00:04:21,410 --> 00:04:23,390
‫Veja como ficaria em diferentes máquinas.

66
00:04:23,390 --> 00:04:24,290
‫Eu tenho computação lenta.

67
00:04:24,290 --> 00:04:29,780
‫Eu só posso fazer dez quadros por segundo em um computador rápido, que pode fazer 100 quadros por segundo.

68
00:04:29,810 --> 00:04:32,570
‫Agora a duração desses quadros é diferente.

69
00:04:32,570 --> 00:04:36,350
‫Portanto, no computador lento, a duração do quadro é 0. 1 de segundo.

70
00:04:36,350 --> 00:04:42,590
‫Se eu pudesse encaixar apenas dez deles em um segundo e em um computador rápido, seria. 01 de segundo, muito menos porque pode

71
00:04:42,590 --> 00:04:45,320
‫executar as coisas mais rápido.

72
00:04:45,320 --> 00:04:47,360
‫Não demora muito para computar o quadro.

73
00:04:48,080 --> 00:04:54,290
‫Então, se eu multiplicar pela duração do quadro, multiplico minha unidade pela duração do quadro.

74
00:04:54,590 --> 00:04:58,070
‫Então você vai ver isso em 1/2.

75
00:04:58,070 --> 00:05:03,500
‫Então, onde dez quadros foram executados, eu recebo uma unidade de movimento.

76
00:05:03,860 --> 00:05:05,090
‫E o mesmo é verdade.

77
00:05:05,090 --> 00:05:11,420
‫Se eu fiz 100 quadros de execução, ainda recebo uma unidade de movimento.

78
00:05:11,450 --> 00:05:15,520
‫Então, eu gostaria de desafiá-lo a multiplicar pelo tempo Delta.

79
00:05:15,530 --> 00:05:21,620
‫Então, o que vamos fazer é lembrar que podemos multiplicar vetores por um valor de ponto flutuante

80
00:05:21,980 --> 00:05:23,720
‫para dimensionar essa magnitude.

81
00:05:24,230 --> 00:05:29,110
‫E a maneira como podemos fazer isso em C++ é usando o operador estrela.

82
00:05:29,120 --> 00:05:30,530
‫É assim que fazemos a multiplicação.

83
00:05:30,530 --> 00:05:32,930
‫Não há operador de sinal de multiplicação.

84
00:05:32,930 --> 00:05:37,820
‫Seria confundido com um X, então usamos o operador estrela para denotar a multiplicação.

85
00:05:38,420 --> 00:05:41,900
‫E eu gostaria que você compilasse e testasse seus resultados.

86
00:05:41,900 --> 00:05:45,710
‫Então multiplique pelo tempo delta, multiplique a velocidade pelo tempo delta e veja o que acontece.

87
00:05:46,460 --> 00:05:47,600
‫Faça uma pausa, grave o vídeo e experimente.

88
00:05:50,690 --> 00:05:51,290
‫OK.

89
00:05:51,300 --> 00:05:51,940
‫Bem vindo de volta.

90
00:05:51,950 --> 00:05:54,800
‫Então é a velocidade da plataforma que queremos multiplicar aqui.

91
00:05:55,370 --> 00:06:00,530
‫Agora, podemos extrair isso para uma variável separada, mas na verdade podemos simplesmente colocar uma multiplicação pelo

92
00:06:00,770 --> 00:06:06,500
‫tempo delta no final dessa linha, obviamente antes do ponto e vírgula, porque é antes do final da

93
00:06:06,500 --> 00:06:07,100
‫instrução.

94
00:06:07,790 --> 00:06:13,610
‫E o que é interessante aqui é que há um pouco de precedência de operadores

95
00:06:13,610 --> 00:06:20,930
‫acontecendo aqui em que a multiplicação entre a velocidade da plataforma e o tempo Delta acontecerá antes da

96
00:06:20,960 --> 00:06:22,940
‫adição ao local atual.

97
00:06:22,970 --> 00:06:27,850
‫Agora, isso segue regras matemáticas normais para uma lista completa dessas regras.

98
00:06:27,860 --> 00:06:33,470
‫Não vou entrar em detalhes aqui, mas você pode dar uma olhada na página em ordem

99
00:06:33,470 --> 00:06:35,330
‫de operações na Wikipedia.

100
00:06:35,570 --> 00:06:40,760
‫Existem muitas regras diferentes em diferentes idiomas, seja massa corporal, massa de cama, massa de animal de estimação, massa

101
00:06:40,760 --> 00:06:41,420
‫de cama.

102
00:06:41,660 --> 00:06:43,010
‫Há um monte de siglas diferentes.

103
00:06:43,010 --> 00:06:46,850
‫Então, qualquer um que você cresceu usando, esse é o que eu recomendo que você use.

104
00:06:47,060 --> 00:06:50,180
‫Para mim, era massa corporal, mas você sabe, em outros lugares é diferente.

105
00:06:50,540 --> 00:06:55,070
‫Portanto, vale a pena notar que podemos simplesmente escrevê-lo assim.

106
00:06:55,280 --> 00:07:00,380
‫Mas se quisermos garantir que algo aconteça em uma ordem diferente, você pode usar

107
00:07:00,380 --> 00:07:02,030
‫parênteses para indicar isso.

108
00:07:02,030 --> 00:07:07,460
‫Então eu poderia, só para deixar as coisas mais claras, vou colocar parênteses em torno dessa multiplicação só para mostrar

109
00:07:07,460 --> 00:07:08,930
‫que é isso que acontece.

110
00:07:08,930 --> 00:07:12,920
‫Primeiro a multiplicação e depois a adição ao local atual.

111
00:07:13,580 --> 00:07:16,340
‫Então vamos para Unreal e testar isso.

112
00:07:16,340 --> 00:07:19,370
‫Vamos bater, compilar, e quando terminar, vamos dar play.

113
00:07:19,520 --> 00:07:24,350
‫E agora vemos as plataformas se movendo a uma velocidade muito mais normal porque na verdade está se movendo

114
00:07:24,350 --> 00:07:27,800
‫a um metro por segundo, o que é bom para uma plataforma móvel.

115
00:07:28,220 --> 00:07:35,540
‫Então você pode ver que isso nos ajudou a reduzir a velocidade, mas agora também é uma taxa de quadros, velocidade

116
00:07:35,540 --> 00:07:36,110
‫independente.

117
00:07:36,470 --> 00:07:40,610
‫Se meu computador estivesse funcionando porque alguma outra coisa estava acontecendo em segundo plano, isso ainda

118
00:07:40,610 --> 00:07:43,460
‫teria a mesma aparência e funcionaria da mesma forma no jogo.

119
00:07:43,490 --> 00:07:44,030
‫Coisas boas.

120
00:07:44,030 --> 00:07:46,370
‫Vejo você na próxima palestra.

