Entrar
Últimos assuntos
» Problema ao entrar por uma porta e voltar por elapor aminaro Seg 06 maio 2024, 10:08
» Alguém aqui já ganha dinheiro com seus games?
por theguitarmester Ter 30 Abr 2024, 11:43
» Colisões não funcionando
por theguitarmester Ter 30 Abr 2024, 10:16
» Como ajustar velocidade de cada frame da animação no game maker
por pequetux Sex 26 Abr 2024, 16:45
» Preciso de ajuda
por AftonDuGrau Dom 21 Abr 2024, 20:18
» Como faz o evento drawn GUI, não se repetir?
por aminaro Sex 19 Abr 2024, 20:30
» PROBLEMAS COM FÍSICAS DE ÁGUA
por aminaro Ter 16 Abr 2024, 10:07
» Retorno da GMBR!!!
por Ralphed Sex 12 Abr 2024, 22:45
» JOGADOR PARANDO NO AR QUANDO ATACA
por aminaro Qua 10 Abr 2024, 13:51
» Problemas com texto interativo
por Kaaru72 Dom 07 Abr 2024, 11:31
» Erro escondido e indecifrável
por dev_gabize.azv Qui 04 Abr 2024, 10:11
» Mudar cor de apenas uma palavra
por Ralphed Sáb 30 Mar 2024, 00:39
» Procuro Programador de game maker
por Wou Sex 15 Mar 2024, 10:27
» Mod APK
por gamerainha Qua 13 Mar 2024, 06:30
» 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
» ACERVO GMBR MAGAZINE
por Joton Qui 11 Jan 2024, 19:21
[RESOLVIDO] Player perde toda a vida de uma vez
5 participantes
GMBR :: Ensine & Aprenda :: Perguntas e Respostas :: Game Maker :: GMS:Windows
Página 1 de 1
[RESOLVIDO] Player perde toda a vida de uma vez
[RESPONDIDO]Quando meu Player encosta no inimigo, ele leva todo o dano, alguém sabe alguma forma de fazer com que ele fique "invencível" por alguns segundos, não faço ideia de como fazer isso.
Última edição por Paulomm32 em Qui 23 Jul 2020, 20:05, editado 1 vez(es)
Paulomm32- Data de inscrição : 13/07/2020
Reputação : 0
Número de Mensagens : 46
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Plataformas :- Game Maker 8.0 ou 8.1
- Game Maker Studio 1.4
- Game Maker Studio 2.0
Re: [RESOLVIDO] Player perde toda a vida de uma vez
Se eu fosse você, faria assim:
1 - No evento create, criaria uma variável imune para identificar a colisão com o inimigo; daí, ainda no create, criaria mais uma variável "tempo", um valor em steps, indicando a quantidade de tempo que o personagem ficará imune.
Quando você colidir com o inimigo, indique:
"contanto que imune seja igual a zero, meu personagem perderá um dano x de vida; daí, perdido esse dano, na mesma linha de código, imune ganhará valor igual a um.
Isto automaticamente cortará o dano contínuo.
É a partir daí que usaremos a variável "tempo", no evento step, dentro de uma condição onde imune seja verdadeira ( igual a 1 ).
Vamos supor que você deixou tempo=180 lá no create (a 60 fps, vale 3 segundos.)
Talvez haja um código ainda mais simples, mas da última vez que fiz isso usei dessa forma sem problemas. Se funcionar aí no GMS2, e quiser fazer o seu personagem piscar, tenho uma ideia aqui também.
1 - No evento create, criaria uma variável imune para identificar a colisão com o inimigo; daí, ainda no create, criaria mais uma variável "tempo", um valor em steps, indicando a quantidade de tempo que o personagem ficará imune.
- Código:
imune=0;
tempo=180;
Quando você colidir com o inimigo, indique:
"contanto que imune seja igual a zero, meu personagem perderá um dano x de vida; daí, perdido esse dano, na mesma linha de código, imune ganhará valor igual a um.
Isto automaticamente cortará o dano contínuo.
É a partir daí que usaremos a variável "tempo", no evento step, dentro de uma condição onde imune seja verdadeira ( igual a 1 ).
Vamos supor que você deixou tempo=180 lá no create (a 60 fps, vale 3 segundos.)
- Código:
If imune=1
{
tempo-=1; //cada step reduz a variável, a todo momento, comendo os 180 em direção ao zero;
If tempo<1 {imune = 0}; // se você gastou os 180, acabou sua imunidade. Você está sujeito a perder dano para aquele inimigo novamente.
}
If imune = 0 {tempo=180};//reseta o valor do tempo.
Talvez haja um código ainda mais simples, mas da última vez que fiz isso usei dessa forma sem problemas. Se funcionar aí no GMS2, e quiser fazer o seu personagem piscar, tenho uma ideia aqui também.
polosam- Games Ranking :
Notas recebidas : A + B
Data de inscrição : 20/12/2010
Reputação : 120
Número de Mensagens : 749
Prêmios :
x 0 x 0 x 0
x 1 x 1 x 0
x 0 x 0 x 0
Plataformas :- Game Maker 8.0 ou 8.1
- Game Maker Studio 1.4
theguitarmester e Paulomm32 gostam desta mensagem
Re: [RESOLVIDO] Player perde toda a vida de uma vez
polosam escreveu:Se eu fosse você, faria assim:
1 - No evento create, criaria uma variável imune para identificar a colisão com o inimigo; daí, ainda no create, criaria mais uma variável "tempo", um valor em steps, indicando a quantidade de tempo que o personagem ficará imune.
- Código:
imune=0;
tempo=180;
Quando você colidir com o inimigo, indique:
"contanto que imune seja igual a zero, meu personagem perderá um dano x de vida; daí, perdido esse dano, na mesma linha de código, imune ganhará valor igual a um.
Isto automaticamente cortará o dano contínuo.
É a partir daí que usaremos a variável "tempo", no evento step, dentro de uma condição onde imune seja verdadeira ( igual a 1 ).
Vamos supor que você deixou tempo=180 lá no create (a 60 fps, vale 3 segundos.)
- Código:
If imune=1
{
tempo-=1; //cada step reduz a variável, a todo momento, comendo os 180 em direção ao zero;
If tempo<1 {imune = 0}; // se você gastou os 180, acabou sua imunidade. Você está sujeito a perder dano para aquele inimigo novamente.
}
If imune = 0 {tempo=180};//reseta o valor do tempo.
Talvez haja um código ainda mais simples, mas da última vez que fiz isso usei dessa forma sem problemas. Se funcionar aí no GMS2, e quiser fazer o seu personagem piscar, tenho uma ideia aqui também.
valeu cara! essa parada do personagem piscar parece interessante.
Paulomm32- Data de inscrição : 13/07/2020
Reputação : 0
Número de Mensagens : 46
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Plataformas :- Game Maker 8.0 ou 8.1
- Game Maker Studio 1.4
- Game Maker Studio 2.0
Re: [RESOLVIDO] Player perde toda a vida de uma vez
Deu certo esse método no GMS2?
polosam- Games Ranking :
Notas recebidas : A + B
Data de inscrição : 20/12/2010
Reputação : 120
Número de Mensagens : 749
Prêmios :
x 0 x 0 x 0
x 1 x 1 x 0
x 0 x 0 x 0
Plataformas :- Game Maker 8.0 ou 8.1
- Game Maker Studio 1.4
Re: [RESOLVIDO] Player perde toda a vida de uma vez
Eu uso essa piscagem em quase todos os meu jogos, a não ser que o player fosse dar respawn em uma área segura. Muito bom.
Flws!
Flws!
Re: [RESOLVIDO] Player perde toda a vida de uma vez
polosam escreveu:Deu certo esse método no GMS2?
Acho que pode dar certo, o problema é que eu tenho uma variável chamada global.life que define quanto de vida ele tem, então eu preciso definir que se imune for igual a zero e ele estiver colidindo com o inimigo, a vida dele cai.
if (imune = 0) and (place_meeting(x,y,obj_mau))
{
global.life --;
}
tentei usar esse código mas não deu certo, pode ser que eu esteja fazendo algo bem errado mas eu sou um iniciante e foi o que veio na minha mente.
Paulomm32- Data de inscrição : 13/07/2020
Reputação : 0
Número de Mensagens : 46
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Plataformas :- Game Maker 8.0 ou 8.1
- Game Maker Studio 1.4
- Game Maker Studio 2.0
Re: [RESOLVIDO] Player perde toda a vida de uma vez
Terminando a ideia do polosam:
CREATE.
STEP
CREATE.
- Código:
tempo_total = 180;
imune = 0;
tempo = tempo_total;
STEP
- Código:
if (imune==1) {
tempo -= 1; //cada step reduz a variável, a todo momento, comendo os 180 em direção ao zero;
if (tempo == 0) {
imune = 0;
tempo = tempo_total;
} // se você gastou os 180, acabou sua imunidade. Você está sujeito a perder dano para aquele inimigo novamente.
}
else { // se não está imune
if (place_meeting(x, y, obj_mau)) {
global.life--;
imune = 1;
}
}
Leia o Manual do Iniciante e a Lista de Tutoriais, para aprender bastante sobre o GM.
Recomendo o Manual completo das colisões, bem útil.
O exemplo Criar um chat (banir, kickar, etc) é interessante.
Para seu jogo ficar rápido e legal, aprenda a Aumentar o desempenho do seu jogo.
Aprenda a calcular a velocidade de suas animações
Entre para o Clube do Inglês:
Diemorth e Paulomm32 gostam desta mensagem
Re: [RESOLVIDO] Player perde toda a vida de uma vez
PedroX escreveu:Terminando a ideia do polosam:
CREATE.
- Código:
tempo_total = 180;
imune = 0;
tempo = tempo_total;
STEP
- Código:
if (imune==1) {
tempo -= 1; //cada step reduz a variável, a todo momento, comendo os 180 em direção ao zero;
if (tempo == 0) {
imune = 0;
tempo = tempo_total;
} // se você gastou os 180, acabou sua imunidade. Você está sujeito a perder dano para aquele inimigo novamente.
}
else { // se não está imune
if (place_meeting(x, y, obj_mau)) {
global.life--;
imune = 1;
}
}
valeu!
Paulomm32- Data de inscrição : 13/07/2020
Reputação : 0
Número de Mensagens : 46
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Plataformas :- Game Maker 8.0 ou 8.1
- Game Maker Studio 1.4
- Game Maker Studio 2.0
Re: [RESOLVIDO] Player perde toda a vida de uma vez
Paulomm32 escreveu:PedroX escreveu:Terminando a ideia do polosam:
CREATE.
- Código:
tempo_total = 180;
imune = 0;
tempo = tempo_total;
STEP
- Código:
if (imune==1) {
tempo -= 1; //cada step reduz a variável, a todo momento, comendo os 180 em direção ao zero;
if (tempo == 0) {
imune = 0;
tempo = tempo_total;
} // se você gastou os 180, acabou sua imunidade. Você está sujeito a perder dano para aquele inimigo novamente.
}
else { // se não está imune
if (place_meeting(x, y, obj_mau)) {
global.life--;
imune = 1;
}
}
valeu!
Por que não usar um Alarm Event para desativar a flag ao invés de contar o tempo manualmente?
Quando o jogador for atingido:
CREATE EVENT
- Código:
...
imune = true;
alarm[0] = tempo_total;
...
Então dentro do evento do alarme:
ALARM EVENT 0
- Código:
imume = false;
Ricoh5A22- Data de inscrição : 26/11/2020
Reputação : 0
Número de Mensagens : 3
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Plataformas :- Game Maker Studio 2.0
- Unity
- Java
- C#
- Godot
- Javascript
- C ou C++
polosam gosta desta mensagem
Tópicos semelhantes
» Player nao perde vida ao cair na lava
» (AJUDA)Dúvida:O player perde vida e a sprite(imagem do evento draw) muda.
» [Resolvido]Como fazer o Inimigo atacar se estiver perto do player e o player perder vida
» [resolvido][Duvida]Vida do player
» [Resolvido] Vida do player nao passar de 100
» (AJUDA)Dúvida:O player perde vida e a sprite(imagem do evento draw) muda.
» [Resolvido]Como fazer o Inimigo atacar se estiver perto do player e o player perder vida
» [resolvido][Duvida]Vida do player
» [Resolvido] Vida do player nao passar de 100
GMBR :: Ensine & Aprenda :: Perguntas e Respostas :: Game Maker :: GMS:Windows
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos