GMBR
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Entrar

Esqueci-me da senha

Últimos assuntos
» Retorno da GMBR!!!
por theguitarmester Ter 19 Mar 2024, 22:38

» Procuro Programador de game maker
por Wou Sex 15 Mar 2024, 10:27

» Mod APK
por gamerainha Qua 13 Mar 2024, 06:30

» Mudar cor de apenas uma palavra
por lunalol Sex 01 Mar 2024, 13:42

» Aceito pedidos de sprites (Com exemplos meus)
por Sevilha Qua 28 Fev 2024, 12:17

» Inventário simples
por Isquilo_Roedor Qui 22 Fev 2024, 15:18

» Problemas na programaçnao de inimigo [jogo DOOM LIKE]
por Black Mirror Dom 11 Fev 2024, 13:34

» ANDROID MULTI TOUCH
por DiegoBr Dom 04 Fev 2024, 12:13

» Servidor de Discord do fórum?
por Lighter Sáb 27 Jan 2024, 17:18

» Save e Load Json
por Klinton Rodrigues Qui 25 Jan 2024, 11:12

» Colisão com mais de um objeto
por aminaro Seg 22 Jan 2024, 15:02

» Oi sou novo aqui
por Thiago Silveira Alexandre Sáb 20 Jan 2024, 20:55

» Como acessar conteudo comprado no marketplace
por macmilam Sex 19 Jan 2024, 07:42

» Devlogs em vídeos do Block Room
por Joton Seg 15 Jan 2024, 16:56

» Alguém aqui já ganha dinheiro com seus games?
por Joton Seg 15 Jan 2024, 16:49

» ACERVO GMBR MAGAZINE
por Joton Qui 11 Jan 2024, 19:21

» como aumentar o obj sem aumentar a colisão??
por GabrielXavier Qua 10 Jan 2024, 07:21

» Asteroid Core - Early Acesse Update [0.2.0.0]
por JOZ. Seg 08 Jan 2024, 14:39

» Versionamento de código com GitHub
por GabrielXavier Seg 08 Jan 2024, 07:32

» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por kolesovsup Sex 29 Dez 2023, 07:16

» a funçao approach ainda existe?
por PEDRINDEV Ter 26 Dez 2023, 20:05

» Inimigo ataca até por trás! >:(
por saim Sex 22 Dez 2023, 08:55

» [RESOLVIDO]Spawn após morte
por Deception_1999 Dom 17 Dez 2023, 16:39

» Remunerado $$$ - Procuro programador para ajudar a "montar" um jogo
por theguitarmester Sáb 02 Dez 2023, 16:28

» Game maker nao abre
por Cerf Dom 26 Nov 2023, 12:01


#IAJ Aula 04 - Saúde do inimigo

5 participantes

Ir para baixo

#IAJ Aula 04 - Saúde do inimigo Empty #IAJ Aula 04 - Saúde do inimigo

Mensagem por All-x Sáb 20 Out 2012, 23:57

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:

#IAJ Aula 04 - Saúde do inimigo 01

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)
All-x
All-x

Games Ranking : Nota A

Notas recebidas : B A
Data de inscrição : 20/12/2008
Reputação : 189
Número de Mensagens : 2571
Prêmios : #IAJ Aula 04 - Saúde do inimigo Empty

Medalhas x 0 Tutoriais x 25 Moedas x 0

Ouro x 2 Prata x 1 Bronze x 1

Insignia 1 x 1 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0
  • Javascript
  • C ou C++


https://redscreensoft.com

Ir para o topo Ir para baixo

#IAJ Aula 04 - Saúde do inimigo Empty Re: #IAJ Aula 04 - Saúde do inimigo

Mensagem por Rafaelhiv Qua 25 Set 2013, 16:50

Cadê a aula?
Rafaelhiv
Rafaelhiv

Data de inscrição : 24/09/2013
Reputação : 0
Número de Mensagens : 1
Prêmios : #IAJ Aula 04 - Saúde do inimigo Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

#IAJ Aula 04 - Saúde do inimigo Empty Re: #IAJ Aula 04 - Saúde do inimigo

Mensagem por Magritte Qua 25 Set 2013, 17:37

Boa pergunta =X
Magritte
Magritte

Data de inscrição : 22/04/2013
Reputação : 17
Número de Mensagens : 163
Prêmios : #IAJ Aula 04 - Saúde do inimigo Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

#IAJ Aula 04 - Saúde do inimigo Empty Re: #IAJ Aula 04 - Saúde do inimigo

Mensagem por All-x Qua 25 Set 2013, 19:59

Ela foi pro esquecimento. Sad

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!
All-x
All-x

Games Ranking : Nota A

Notas recebidas : B A
Data de inscrição : 20/12/2008
Reputação : 189
Número de Mensagens : 2571
Prêmios : #IAJ Aula 04 - Saúde do inimigo Empty

Medalhas x 0 Tutoriais x 25 Moedas x 0

Ouro x 2 Prata x 1 Bronze x 1

Insignia 1 x 1 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0
  • Javascript
  • C ou C++


https://redscreensoft.com

Ir para o topo Ir para baixo

#IAJ Aula 04 - Saúde do inimigo Empty Re: #IAJ Aula 04 - Saúde do inimigo

Mensagem por DonutScore Qua 15 Jan 2014, 10:54

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ê
DonutScore
DonutScore

Data de inscrição : 18/12/2013
Reputação : 6
Número de Mensagens : 177
Prêmios : #IAJ Aula 04 - Saúde do inimigo Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://donutscore.com

Ir para o topo Ir para baixo

#IAJ Aula 04 - Saúde do inimigo Empty Re: #IAJ Aula 04 - Saúde do inimigo

Mensagem por All-x Qua 15 Jan 2014, 18:43

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!
All-x
All-x

Games Ranking : Nota A

Notas recebidas : B A
Data de inscrição : 20/12/2008
Reputação : 189
Número de Mensagens : 2571
Prêmios : #IAJ Aula 04 - Saúde do inimigo Empty

Medalhas x 0 Tutoriais x 25 Moedas x 0

Ouro x 2 Prata x 1 Bronze x 1

Insignia 1 x 1 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0
  • Javascript
  • C ou C++


https://redscreensoft.com

Ir para o topo Ir para baixo

#IAJ Aula 04 - Saúde do inimigo Empty Re: #IAJ Aula 04 - Saúde do inimigo

Mensagem por jejegames crosoft Qua 31 Dez 2014, 16:08

seu tutoriais são muito bom e a engine melhores ainda.
jejegames crosoft
jejegames crosoft

Data de inscrição : 30/12/2014
Reputação : 0
Número de Mensagens : 5
Prêmios : #IAJ Aula 04 - Saúde do inimigo Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

#IAJ Aula 04 - Saúde do inimigo Empty Re: #IAJ Aula 04 - Saúde do inimigo

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos