Entrar
Últimos assuntos
» player não consegue andarpor lovn7 Qui 21 Nov 2024, 13:33
» É possível fazer istó no game maker
por William Lima Qui 21 Nov 2024, 10:56
» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por Lua Sáb 16 Nov 2024, 20:22
» (Resolvido) Cenario longo x Texture Pages
por josuedemoraes Sáb 16 Nov 2024, 15:31
» Kids' band
por Adilson Lucindo Santos Sex 15 Nov 2024, 12:23
» (RESOLVIDO) Engasgos-Troca de Sprites/animações
por josuedemoraes Ter 12 Nov 2024, 01:49
» Block Room - DEMO
por Joton Qua 06 Nov 2024, 22:58
» Game Infinito vertical (subindo)
por macmilam Sáb 26 Out 2024, 12:36
» Retorno da GMBR!!!
por Dancity Ter 22 Out 2024, 16:36
» Máquina de estados
por aminaro Qui 10 Out 2024, 13:33
» como faço pra um objeto colidir com o outro e diminuir a vida do player ?
por josuedemoraes Qui 03 Out 2024, 16:51
» RESOLVIDO: Colisão com objetos moveis
por josuedemoraes Qua 02 Out 2024, 20:28
» Crypt of the Blood Moon
por divin sphere Qua 11 Set 2024, 18:18
» como fazer um objeto seguir?
por divin sphere Dom 18 Ago 2024, 18:08
» Procuro de alguém para Modelar/Texturizar/Animar objetos 3D
por un00brn Dom 11 Ago 2024, 11:10
» Destruição de cenário (estilo DD Tank)
por CoronelZeg Sex 09 Ago 2024, 17:16
» RESOLVIDO-Como destruir uma instancia especifica de um objeto
por josuedemoraes Ter 23 Jul 2024, 00:40
» Automatizar a coleta de id
por GabrielXavier Seg 22 Jul 2024, 18:01
» Preciso de ajuda para concluir um pequeno projeto
por lmoura Qui 27 Jun 2024, 15:45
» ANGULO ACOMPANHAR O OBJETO
por Klinton Rodrigues Qui 27 Jun 2024, 08:34
» Musica reinicia quando sala reinicia
por GabrielXavier Ter 18 Jun 2024, 07:28
» como fazer uma copia de gd
por generico_cube Sex 14 Jun 2024, 15:48
» Square Adventure
por guilherme551 Ter 11 Jun 2024, 09:54
» como posso definir limite de uma variavel
por GabrielXavier Sex 07 Jun 2024, 14:14
» [Resolvido] Dúvida, colisão única de objeto
por vdm842 Sex 24 maio 2024, 09:50
#IAJ Aula 04 - Saúde do inimigo
5 participantes
GMBR :: Ensine & Aprenda :: Tutoriais :: Game Maker
Página 1 de 1
#IAJ Aula 04 - Saúde do inimigo
INTRODUÇÃO A JOGOS
Aula 04 - Saúde do inimigo
(Atualizado 08/02/2015)
Como o prometido, esta aula será dedicada à saúde do inimigo. Quem não viu as aulas 9 e 10, veja. Na aula anterior expliquei como usar as variáveis para serem a saúde de nossos personagens.
Quando existe uma unica instância de um objeto (Player) usamos uma variável global. Mas quando existem varias instâncias de um mesmo objeto usamos uma variável local (inimigos).
Bom, primeiramente usaremos a mesma engine da aula passada:
Agora vamos ao objeto inimigo, no evento create e adicionamos o seguinte código:
- Código:
vida=100
Aqui criamos uma variável local chamada vida. Ela só pode ser usada em função deste objeto. E será usada para medir a saúde do inimigo.
Agora vamos fazer com que o inimigo morra após levar 4 tiros. Va ao evento de colisão entre o inimigo e o tiro e retire o seguinte código:
- Código:
//Destrói o objeto
instance_destroy()
Antes nós destruíamos o inimigo com apenas um tiro. Agora vamos usar nossa variável vida para diminuir a saúde do inimigo.
Neste mesmo evento coloque o seguinte código:
- Código:
//Retira 25 da saúde do player
vida -= 25
Logicamente vida chegará a zero após 4 tiros:
1º tiro: 75
2º tiro: 50
3º tiro: 25
4º tiro: 0
Agora faremos com que quando a vida chegar a zero o inimigo seja destruido. Va ao evento step do inimigo e coloque o seguinte código:
- Código:
// Se a vida for menor ou igual a zero
if vida<=0
{
//Objeto é destruído
instance_destroy()
}
Mas você me pergunta porque "<=" e não somente "="?
R: porque caso mude o valor de retirada por um número que não tenha 0 em seu caminho decrescente o objeto não será destruído e o valor de vida continuará negativamente. Ex:
- Código:
vida -= 33
Vai passar por: 67, 34, 1, -32 ....
Percebeu? dessa maneira ele nunca ser igual a zero. Por isso coloque < (menor que), e caso o número for menor o código também será realizado. Então assim você pode retirar qualquer valor de "vida" que se ele for menor que zero o inimigo será destruído.
Agora faça um teste. O inimigo esta sendo morto exatamente com 4 tiros.
Falta somente visualizar a vida do inimigo, que tal fazer healthbars iguais ao do age of empires?
Va ao evento draw do objeto controle e coloque o seguinte código (este deve ser criado em um novo quadradinho separado dos outros códigos):
Legenda:
x1: posição da lateral esquerda da barra
x2: posição da lateral direita da barra
y1: posição da linha superior da barra
y2: posição da linha inferior da barra
amount: variável que estamos usando (no caso, vida)
backcol: cor do fundo da barra
mincol: cor que significa pouca saúde (vermelha)
maxcol: cor que significa boa saúde (verde)
direction: direção para onde vai aumentando a saúde (0=direita)
showback: mostrar fundo da barra (1 significa sim e 0 significa não)
showborder: mostrar borda da barra (1 significa sim e 0 significa não)
- Código:
draw_healthbar(x,y-2,x+32,y-5,vida,c_black,c_red,c_lime,0,1,1);
Mas calma! Lembra que a variável vida só pode ser usada no objeto inimigo? Então, vamos fazer com que o objeto controle desenhe para o objeto inimigo. Na opção applies To: que fica no canto direito superior do editor de códigos, selecione object e escolha o inimigo. Desta forma:
Já esta tudo pronto agora, mas precisamos entender as posições x1, y1, x2 e y2 da health bar.
x e y são as posições do objeto (no caso, o inimigo) na room e sempre estão mudando, certo? Exemplo:
Se a posição x do objeto é 100, x+32 é a mesma coisa que 100+32 e como o x muda sempre conforme a posição do objeto a barra vai acompanhar o x e se posicionar 32 pixels a frente dele.
Caso não tenha conseguido, baixe a engine completa:
Terminamos essa aula. Até a próxima!
Próxima aula: Pontuação
FLWS!
Última edição por Alex FC em Seg 09 Fev 2015, 19:53, editado 11 vez(es) (Motivo da edição : Atualização)
Re: #IAJ Aula 04 - Saúde do inimigo
Cadê a aula?
Rafaelhiv- Data de inscrição : 24/09/2013
Reputação : 0
Número de Mensagens : 1
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: #IAJ Aula 04 - Saúde do inimigo
Boa pergunta =X
Magritte- Data de inscrição : 22/04/2013
Reputação : 17
Número de Mensagens : 163
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Plataformas :- Unity
- Godot
Re: #IAJ Aula 04 - Saúde do inimigo
Ela foi pro esquecimento.
Algum moderador ou algum script do fórum deve ter deletado acidentalmente. Já conversei com o Pedrox, mas não tem como recuperar.
Espero que compreendam. Logo farei a reformulação dessas aulas. Valeu?
FLWS!
Algum moderador ou algum script do fórum deve ter deletado acidentalmente. Já conversei com o Pedrox, mas não tem como recuperar.
Espero que compreendam. Logo farei a reformulação dessas aulas. Valeu?
FLWS!
Re: #IAJ Aula 04 - Saúde do inimigo
Mas as aulas você vai continuar elas? Seus tutoriais são completos, pode ter certeza que o que eu sei sobre GML foi graças à você
Re: #IAJ Aula 04 - Saúde do inimigo
Pretendo refazer tudo, com a adição de vídeos. Pode ser que eu inicie nas próximas semanas no canal Jovem Maker.
Enfim, obrigado e aguarde novidades.
FLWS!
Enfim, obrigado e aguarde novidades.
FLWS!
Re: #IAJ Aula 04 - Saúde do inimigo
seu tutoriais são muito bom e a engine melhores ainda.
jejegames crosoft- Data de inscrição : 30/12/2014
Reputação : 0
Número de Mensagens : 5
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Tópicos semelhantes
» #IAJ Aula 03 - Saúde do player e inimigo Top Down
» como fazer Combate entre PERSONAGEM X INIMIGO com sistema de ataque , e barras de saude para os dois?
» como crio um inimigo 3d que video aula por favor
» [Vídeo-Aula]Aula 4.1 - Usando funções básicas do draw
» Aula 3 - Puzzle - Todas os Modos da Aula 3 Aqui!
» como fazer Combate entre PERSONAGEM X INIMIGO com sistema de ataque , e barras de saude para os dois?
» como crio um inimigo 3d que video aula por favor
» [Vídeo-Aula]Aula 4.1 - Usando funções básicas do draw
» Aula 3 - Puzzle - Todas os Modos da Aula 3 Aqui!
GMBR :: Ensine & Aprenda :: Tutoriais :: Game Maker
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos