1
00:00:00,000 --> 00:00:04,160
Bem-vindo de volta, meus colegas desenvolvedores de jogos. 

2
00:00:04,155 --> 00:00:08,045
Neste vídeo, vamos adicionar disparo automático. 

3
00:00:08,040 --> 00:00:11,600
Então você pode ver aqui que temos um tempo entre os tiros. 

4
00:00:11,595 --> 00:00:14,195
Quanto tempo você quer entre tiros? Eu posso ouvi-lo. 

5
00:00:14,190 --> 00:00:15,770
Você quer dizer 0,5? 

6
00:00:15,765 --> 00:00:17,595
Certo, senhor, lá vai você. 

7
00:00:17,595 --> 00:00:18,615
Nós jogamos run. 

8
00:00:18,615 --> 00:00:19,995
Tínhamos o botão Play. 

9
00:00:19,995 --> 00:00:21,515
Executamos o ganho

10
00:00:21,510 --> 00:00:24,390
e mantemos pressionado o botão esquerdo do mouse. 

11
00:00:24,390 --> 00:00:27,480
E lá vai você. Você pode ver que devemos

12
00:00:27,480 --> 00:00:31,080
cada quadro e você pode ver que eles são muito consistentes. 

13
00:00:31,080 --> 00:00:35,180
Então eu não estou jogando um jogo e aqui estou pressionando o botão e ele

14
00:00:35,175 --> 00:00:39,855
continua disparando a cada 0,5 segundos ou cada um tem segundo,

15
00:00:39,855 --> 00:00:41,335
continuamos atirando capaz. 

16
00:00:41,335 --> 00:00:43,405
Então, não vamos perder mais tempo. 

17
00:00:43,400 --> 00:00:46,420
Vamos aprender sobre contadores. 

18
00:00:46,415 --> 00:00:48,955
E vamos começar. 

19
00:00:48,950 --> 00:00:50,750
O k.

20
00:00:50,750 --> 00:00:53,440
Então, queremos ter a capacidade

21
00:00:53,435 --> 00:00:58,135
disparar balas
 automaticamente quando o botão do mouse é pressionado. 

22
00:00:58,130 --> 00:01:01,190
Então, atualmente, sempre que pressionamos o botão,

23
00:01:01,190 --> 00:01:03,020
uma vez que podemos atirar,

24
00:01:03,020 --> 00:01:05,200
mas o que queremos é ter algum tipo de

25
00:01:05,195 --> 00:01:08,935
disparo
 automático enquanto estamos segurando o botão,

26
00:01:08,930 --> 00:01:11,060
assim como um rifle,

27
00:01:11,060 --> 00:01:14,180
mesmo que estejamos usando uma espingarda aqui,

28
00:01:14,180 --> 00:01:18,470
vamos apenas usar nossa imaginação e imaginar que esta é uma espingarda automática. 

29
00:01:18,470 --> 00:01:22,570
E enquanto estamos segurando o botão, ele continua disparando. 

30
00:01:22,565 --> 00:01:25,685
Então, como vamos fazer isso? 

31
00:01:25,685 --> 00:01:27,685
Atualmente, se você olhar aqui,

32
00:01:27,680 --> 00:01:29,350
você pode ver que esse método,

33
00:01:29,345 --> 00:01:31,085
o botão baixar o mouse,

34
00:01:31,085 --> 00:01:36,355
retorna um verdadeiro durante o quadro que o usuário pressionou o botão do mouse fornecido. 

35
00:01:36,350 --> 00:01:39,980
Portanto, ele só retorna true uma vez
 no

36
00:01:39,980 --> 00:01:43,790
quadro em que o player ou o usuário pressionou o botão. 

37
00:01:43,790 --> 00:01:49,060
O que queremos é que queremos usar algo chamado botão de entrada do mouse. 

38
00:01:49,055 --> 00:01:52,525
Portanto, observe que este foi o botão do mouse para baixo. 

39
00:01:52,520 --> 00:01:55,520
Este é o botão obter o mouse. 

40
00:01:55,520 --> 00:01:57,050
E se você ler a descrição,

41
00:01:57,050 --> 00:02:02,830
você pode ver que ela retorna um verdadeiro se o botão do mouse fornecido está pressionado. 

42
00:02:02,825 --> 00:02:05,005
Então, enquanto estamos segurando,

43
00:02:05,000 --> 00:02:06,640
isso continua retornando verdadeiro. 

44
00:02:06,635 --> 00:02:12,055
E isso nos permitirá continuar instanciando balas o tempo todo, a cada quadro. 

45
00:02:12,050 --> 00:02:15,230
Mas chegamos a um problema. 

46
00:02:15,230 --> 00:02:17,620
Você notou que quando executamos o jogo,

47
00:02:17,615 --> 00:02:20,585
se você se lembra, podemos ver as estatísticas aqui. 

48
00:02:20,585 --> 00:02:25,795
Então, temos cerca de 800 a mil quadros por segundo. 

49
00:02:25,790 --> 00:02:27,670
Então, cada quadro,

50
00:02:27,665 --> 00:02:30,145
enquanto estamos pressionando o botão do mouse,

51
00:02:30,140 --> 00:02:32,930
vamos instanciar uma bala,

52
00:02:32,930 --> 00:02:34,400
o que é muito ruim. 

53
00:02:34,400 --> 00:02:38,740
Então, vamos ter cerca de 1000 balas a cada segundo. 

54
00:02:38,735 --> 00:02:39,985
Agora, é divertido. 

55
00:02:39,980 --> 00:02:41,920
É uma arma muito OOP,

56
00:02:41,915 --> 00:02:43,955
mas não é isso que queremos. 

57
00:02:43,955 --> 00:02:47,515
Queremos ter um certo tempo entre

58
00:02:47,510 --> 00:02:52,360
disparar cada livro enquanto estamos segurando como uma arma real. 

59
00:02:52,355 --> 00:02:53,665
Qual é o assunto aqui? 

60
00:02:53,660 --> 00:02:54,770
Certo, então não se preocupe. 

61
00:02:54,770 --> 00:02:57,590
Acho que isso vai resolver sozinho. De qualquer forma. 

62
00:02:57,590 --> 00:02:58,580
Vamos começar. 

63
00:02:58,580 --> 00:03:02,230
A primeira coisa que vamos fazer é criar um campo serializado,

64
00:03:02,225 --> 00:03:04,265
que será um flutuador,

65
00:03:04,265 --> 00:03:08,685
e será o tempo entre os tiros. 

66
00:03:08,689 --> 00:03:17,569
Uma segunda variável que teremos como um flutuador privado e o balcão de disparos. 

67
00:03:17,570 --> 00:03:20,950
E o que faremos é assim que
 começarmos,

68
00:03:20,945 --> 00:03:25,645
vamos definir o contador de disparos em torno de 0,

69
00:03:25,640 --> 00:03:30,850
ou podemos configurá-lo imediatamente aqui em vez de configurá-lo e começar. 

70
00:03:30,845 --> 00:03:33,215
Então, começamos em 0. 

71
00:03:33,215 --> 00:03:35,435
Agora, se rolarmos para baixo aqui,

72
00:03:35,435 --> 00:03:38,905
vamos criar outra condição. 

73
00:03:38,900 --> 00:03:47,220
E diremos que, se o ponto de entrada obter o botão do mouse,

74
00:03:47,224 --> 00:03:51,564
que retorna se o botão de modos fornecido está pressionado. 

75
00:03:51,560 --> 00:03:56,030
E também usamos o índice 0 para o botão esquerdo do mouse. 

76
00:03:56,030 --> 00:04:00,620
Vamos começar a usar o contador de tiro e

77
00:04:00,620 --> 00:04:06,250
remover dele o tempo delta do ponto de tempo. 

78
00:04:06,245 --> 00:04:10,015
Então você se lembra quando usamos o plus é igual

79
00:04:10,010 --> 00:04:13,790
em algum lugar aqui em cima quando estávamos usando a transformação,

80
00:04:13,790 --> 00:04:14,960
agora não a temos. 

81
00:04:14,960 --> 00:04:17,690
Bem, isso é semelhante ao mais igual. 

82
00:04:17,690 --> 00:04:24,010
Portanto, isso representa o contador de disparos menos o tempo.DeltaTime. 

83
00:04:24,005 --> 00:04:28,135
E você sabe, vou duplicar isso, comentar isso. 

84
00:04:28,130 --> 00:04:33,320
E então farei disso um minuss igual. 

85
00:04:33,320 --> 00:04:36,830
Então você vai se lembrar que essas são as mesmas coisas. 

86
00:04:36,830 --> 00:04:42,170
E até vou movê-lo para baixo ao lado da linha aqui. 

87
00:04:42,170 --> 00:04:46,790
Você pode manter isso como um lembrete de por que estamos definindo menos iguais,

88
00:04:46,790 --> 00:04:48,880
mais iguais e todas essas coisas. 

89
00:04:48,875 --> 00:04:52,975
É muito mais fácil de ler e é muito mais legal

90
00:04:52,970 --> 00:04:54,890
e vai deixar você muito mais profissional

91
00:04:54,890 --> 00:04:57,050
sempre
 que mostrarmos a alguém o seu jogo. 

92
00:04:57,050 --> 00:04:59,000
Então, vamos continuar um,

93
00:04:59,000 --> 00:05:00,440
o que precisamos aqui? 

94
00:05:00,440 --> 00:05:02,750
Enquanto estamos segurando o botão do mouse,

95
00:05:02,750 --> 00:05:06,160
contador de
 disparos está sendo contado para baixo. 

96
00:05:06,155 --> 00:05:12,085
Então, o que queremos é que sempre que esse contador de disparos terminar ou se tornar 0,

97
00:05:12,080 --> 00:05:15,040
queremos disparar uma bala e depois

98
00:05:15,035 --> 00:05:19,625
atualizar o balcão de tiro de volta ao tempo entre os tiros. 

99
00:05:19,625 --> 00:05:22,525
Então, como vamos fazer isso? 

100
00:05:22,520 --> 00:05:25,150
Em vez de instanciar imediatamente,

101
00:05:25,145 --> 00:05:27,575
vou lançar um desafio. 

102
00:05:27,575 --> 00:05:29,945
Foi uma transição melhor do que da última vez? 

103
00:05:29,945 --> 00:05:33,875
De qualquer forma, seu desafio é verificar se o contador tem
 e,

104
00:05:33,875 --> 00:05:39,045
portanto, criar uma condição if que verifique o contador de disparos. 

105
00:05:39,049 --> 00:05:43,489
Se o contador de disparos for menor ou igual a 0,

106
00:05:43,490 --> 00:05:45,530
por que é menor ou igual a 0? 

107
00:05:45,530 --> 00:05:48,770
Você pode estar perguntando por que não imediatamente 0? 

108
00:05:48,770 --> 00:05:51,600
Bem, porque como estamos contando. 

