Afrikaans
Akan
Albanian
Amharic
Arabic
Armenian
Azerbaijani
Basque
Belarusian
Bemba
Bengali
Bihari
Bosnian
Breton
Bulgarian
Cambodian
Catalan
Cebuano
Cherokee
Chichewa
Chinese (Simplified)
Chinese (Traditional)
Corsican
Croatian
Czech
Danish
Dutch
Esperanto
Estonian
Ewe
Faroese
Filipino
Finnish
French
Frisian
Ga
Galician
Georgian
German
Greek
Guarani
Gujarati
Haitian Creole
Hausa
Hawaiian
Hebrew
Hindi
Hmong
Hungarian
Icelandic
Igbo
Indonesian
Interlingua
Irish
Italian
Japanese
Javanese
Kannada
Kazakh
Kinyarwanda
Kirundi
Kongo
Korean
Krio (Sierra Leone)
Kurdish
Kurdish (Soranî)
Kyrgyz
Laothian
Latin
Latvian
Lingala
Lithuanian
Lozi
Luganda
Luo
Luxembourgish
Macedonian
Malagasy
Malay
Malayalam
Maltese
Maori
Marathi
Mauritian Creole
Moldavian
Mongolian
Myanmar (Burmese)
Montenegrin
Nepali
Nigerian Pidgin
Northern Sotho
Norwegian
Norwegian (Nynorsk)
Occitan
Oriya
Oromo
Pashto
Persian
Polish
Portuguese (Brazil)
Portuguese (Portugal)
Punjabi
Quechua
Romanian
Romansh
Runyakitara
Russian
Samoan
Scots Gaelic
Serbian
Serbo-Croatian
Sesotho
Setswana
Seychellois Creole
Shona
Sindhi
Sinhalese
Slovak
Slovenian
Somali
Spanish
Spanish (Latin American)
Sundanese
Swahili
Swedish
Tajik
Tamil
Tatar
Telugu
Thai
Tigrinya
Tonga
Tshiluba
Tumbuka
Turkish
Turkmen
Twi
Uighur
Ukrainian
Urdu
Uzbek
Vietnamese
Welsh
Wolof
Xhosa
Yiddish
Yoruba
Zulu
1
15. The Grid Inimigo - Dano e Morte
2
Então, chegou a hora de a gente criar alguma resposta para o meu tiro aqui, né?
3
O meu tiro tá passando embora.
4
Não é isso que a gente quer.
5
Tá?
6
Por que isso está acontecendo? Porque a gente tem aqui no...
7
Projétil.
8
Né? Que a gente criou.
9
A gente tem o...
10
A Mesh.
11
Que a gente desligou toda a colisão, lembra? Deixa eu...
12
Mostrar aqui, em Detalhes.
13
Colision.
14
A gente colocou No Colision, para que isso aqui seja só uma representação.
15
Isso aqui não colide com ninguém.
16
E a nossa Sphere Colision, que a gente criou...
17
A gente tem...
18
Custom. A gente tem tudo Overlap aqui, né?
19
A gente colocou Ignore para o Pawn.
20
A gente tem que ligar aqui no WorldDynamic, a gente liga Block.
21
A coluna do Block.
22
Então, ele vai bloquear tudo que é WorldDynamic.
23
Que é o caso do nosso projétil.
24
Ele está bloqueando o meu tiro. Está vendo?
25
Ele está parando ali.
26
Está bloqueando.
27
E um bloqueia o outro.
28
Tá?
29
Começa a virar essa...
30
Essa linha de tiros aí.
31
A gente já vai resolver isso, já.
32
Aqui no meu projétil, a gente tem que fazer o Evento, só. Quando ele bater em algum lugar.
33
Então, Hit...
34
Event Hit.
35
Colisão, Event Hit.
36
Quando ele bater em algum lugar, você destrói esse Actor.
37
Destroy Actor.
38
Então, vamos só ver se funciona.
39
Se ele bater no inimigo...
40
A gente não está vendo mais porque está destruindo o Actor.
41
Tá? Mas, ele bate lá.
42
Como é que eu sei que ele bate? Vamos testar, né?
43
Aqui no BP_Enemy...
44
Né? No meu inimigo.
45
Não no projétil.
46
Quando alguém bater no inimigo, então, Event Hit também.
47
Event Hit.
48
"Quando alguém bater nele, só avisa para mim". Vou fazer um Print String.
49
E pode ser "Hello" mesmo.
50
Então, quando alguém bater no inimigo.
51
Você faz...
52
Um "Hello" para mim.
53
Então, está aparecendo "Hello" lá, né?
54
Então, quando eu atiro...
55
E eu acertei o tiro no inimigo.
56
Eu...
57
Estou fazendo a Print String do "Hello". Então, está funcionando.
58
Tudo funcionando.
59
E o Actor... DestroyActor.
60
Está destruindo o projétil. Por isso que eu estou com o DestroyActor no projétil, tá?
61
Ele destrói ele.
62
E se o projétil não bate no inimigo, né? Ele vai até aonde?
63
Dei um tiro. Ele vai até o infinito, né?
64
Por padrão, a Unreal já deleta esse Actor pra gente em algum momento.
65
Mas, a gente pode fazer isso também...
66
Só pra gente garantir.
67
Existe uma Função...
68
Que se chama Set Life Span.
69
Tá?
70
Set Life Span, que vai dizer para mim...
71
Se eu deixar o mouse em cima.
72
Set the life span of this Actor.
73
Quando expirar, esse objeto será destruído.
74
Então, eu posso dizer quanto tempo ele demora. Esse tiro aí. Para ser destruído. Sei lá...
75
2 segundos, 3... A gente pode testar, também, no nosso...
76
Play Test, né?
77
Mas, só para dizer assim, ó...
78
O que não atingir o inimigo, não tiver o Event Hit.
79
Não vai viver para sempre também. O tiro vai morrer.
80
Em algum momento.
81
Então, depois de 2 segundos, esse tiro desaparece.
82
Tá?
83
É uma boa ideia também, pra gente não começar a criar um monte de Actors no mundo.
84
Sem necessidade. A gente tem que começar a destruir essas coisas, né?
85
Por questão de performance.
86
Isso, por padrão, já existe na Unreal. Set Life Span.
87
Eu andei perguntando nos fóruns aí, porque não tinha na documentação, isso. Eu não achei.
88
Mas, é legal colocar também, pra gente ter certeza. Aqui...
89
Depois de 2 segundos...
90
Este Actor será destruído.
91
Muito bem.
92
Voltando no inimigo, que é onde a gente quer brincar agora, né?
93
Ele está dando o Event Hit.
94
Então, a gente vai fazer uma lógicazinha, para que ele morra, né?
95
Depois de tantos tiros.
96
Então, vamos fazer algumas coisas primeiro.
97
A primeira coisa que eu vou fazer é criar uma variável.
98
Pra gente guardar o valor da vida do inimigo.
99
Então, eu vou colocar como Enemy Health.
100
Enemy Health.
101
Compilar a Blueprint.
102
Eu vou colocar como 100. O valor padrão.
103
Né? Inicial.
104
Toda vez que eu der o hit...
105
A gente vai pegar o Enemy Health...
106
Get.
107
E vai diminuir um valor.
108
Float menos Float.
109
E vai fazer um se...
110
Set do Health, de novo. Com o valor final, que foi diminuído, né?
111
Pra gente ver esse valor, eu vou colocar ele na tela aqui.
112
Publicar esse valor para mim.
113
Tá?
114
Quanto que eu vou diminuir? Eu vou diminuir, sei lá...
115
10.
116
Tá? Cada tiro vai tirar 10.
117
Play.
118
Então, 90, 80, 70, 60...
119
E vai indo, né? -10, -20.
120
Tem que fazer o tratamento agora, para ele morrer.
121
Então, toda vez que eu...
122
For atingido. Você tá uma olhada para mim.
123
Se...
124
O meu Enemy Health...
125
Então, dar um Get aqui.
126
Dá uma olhada se ele é menor.
127
Ou igual à 0.
128
Né?
129
Ou seja, ele morreu, nesse caso.
130
Então, a gente faz um Branch.
131
Se ele for menor ou igual à 0...
132
Deixa eu colocar mais aqui.
133
Se isso for verdade, o inimigo morreu.
134
Então, eu vou dar só um Print String aqui.
135
Print String.
136
Morreu.
137
Mas, se isso não for verdade...
138
Mas, se isso não for verdade, então...
139
A gente diminui o Health...
140
Né? Continua a lógica que estava antes.
141
Então, um Branch.
142
Bem simples aí.
143
Compilar e salvar, pra gente poder ver.
144
90, 80, 70...
145
20, 10...
146
0.
147
Morreu.
148
Você percebe que chegou no 0, né? E depois ele morreu.
149
Pra gente mudar isso, a gente pode só trocar a ordem aqui.
150
Vou trocar a ordem.
151
A gente, primeiro, tira a vida dele.
152
Primeiro eu tiro a vida.
153
Depois eu faço o Branch.
154
Então, vem para cá, esse cara. Eu só troquei a ordem. Depois eu faço o Branch.
155
E se for verdade, ele morreu.
156
Tá?
157
E aí, a gente não vai esperar até o 0.
158
90, 80, 70, 60, 50, 40, 30, 20...
159
10...
160
E...
161
Morreu.
162
Né? Já deu o 0 e já morreu.
163
Beleza?
164
Por enquanto, eu vou deixar o Print String aqui, só pra gente poder ver alguma...
165
Algum feedback visual do que está acontecendo, né?
166
Uma coisa legal aqui é a gente colocar esse valor em uma variável.
167
Promote to Variable.
168
Eu vou colocar como Damage.
169
Damage Taken.
170
Né? Que é o dano que a gente recebe.
171
Então, se eu quiser mudar isso depois...
172
A gente muda.
173
Tá? Então, a gente pode...
174
Se quiser, trocar o valor dessa variável em outra Blueprint, né?
175
Ter um controle ainda maior.
176
Uma coisa que está faltando aqui é o seguinte. Quando ele morrer, na verdade...
177
A gente tem que destruir esse Actor, né?
178
Então, DestroyActor.
179
Para ele sumir da tela.
180
Morreu.
181
Né?
182
Eu fiz o barulho aqui.
183
Depois, a gente tem que implementar som, né? E partículas, para ficar mais interessante.
184
Mas, está funcionando.
185
Morreu.
186
Próxima aula, então, a gente tem que começar a fazer...
187
A resposta do inimigo, né? Ele tem que começar a atirar em mim.
188
Então, vamos fazer isso nas próximas aulas.
Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.