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
» Problema ao entrar por uma porta e voltar por ela
por 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

Ir para baixo

[RESOLVIDO] Player perde toda a vida de uma vez Empty [RESOLVIDO] Player perde toda a vida de uma vez

Mensagem por Paulomm32 Qui 16 Jul 2020, 12:02

[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
Paulomm32

Data de inscrição : 13/07/2020
Reputação : 0
Número de Mensagens : 46
Prêmios : [RESOLVIDO] Player perde toda a vida de uma vez 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
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0


Ir para o topo Ir para baixo

[RESOLVIDO] Player perde toda a vida de uma vez Empty Re: [RESOLVIDO] Player perde toda a vida de uma vez

Mensagem por polosam Qui 16 Jul 2020, 12:56

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.
Happy
polosam
polosam

Games Ranking : Nota A

Notas recebidas : A + B
Data de inscrição : 20/12/2010
Reputação : 120
Número de Mensagens : 749
Prêmios : [RESOLVIDO] Player perde toda a vida de uma vez Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 1 Prata x 1 Bronze x 0

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


theguitarmester e Paulomm32 gostam desta mensagem

Ir para o topo Ir para baixo

[RESOLVIDO] Player perde toda a vida de uma vez Empty Re: [RESOLVIDO] Player perde toda a vida de uma vez

Mensagem por Paulomm32 Qui 16 Jul 2020, 14:07

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.
Happy

valeu cara! essa parada do personagem piscar parece interessante.
Paulomm32
Paulomm32

Data de inscrição : 13/07/2020
Reputação : 0
Número de Mensagens : 46
Prêmios : [RESOLVIDO] Player perde toda a vida de uma vez 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
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0


Ir para o topo Ir para baixo

[RESOLVIDO] Player perde toda a vida de uma vez Empty Re: [RESOLVIDO] Player perde toda a vida de uma vez

Mensagem por polosam Qui 16 Jul 2020, 14:35

Deu certo esse método no GMS2?
polosam
polosam

Games Ranking : Nota A

Notas recebidas : A + B
Data de inscrição : 20/12/2010
Reputação : 120
Número de Mensagens : 749
Prêmios : [RESOLVIDO] Player perde toda a vida de uma vez Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 1 Prata x 1 Bronze x 0

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


Ir para o topo Ir para baixo

[RESOLVIDO] Player perde toda a vida de uma vez Empty Re: [RESOLVIDO] Player perde toda a vida de uma vez

Mensagem por vinians Qui 16 Jul 2020, 15:50

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!
vinians
vinians

Games Ranking : Nota B

Notas recebidas : B-C-A-C
Data de inscrição : 18/09/2008
Reputação : 90
Número de Mensagens : 2715
Prêmios : [RESOLVIDO] Player perde toda a vida de uma vez Empty

Medalhas x 0 Tutoriais x 1 Moedas x 0

Ouro x 0 Prata x 2 Bronze x 1

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


https://vinians.itch.io

Ir para o topo Ir para baixo

[RESOLVIDO] Player perde toda a vida de uma vez Empty Re: [RESOLVIDO] Player perde toda a vida de uma vez

Mensagem por Paulomm32 Qui 16 Jul 2020, 16:22

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
Paulomm32

Data de inscrição : 13/07/2020
Reputação : 0
Número de Mensagens : 46
Prêmios : [RESOLVIDO] Player perde toda a vida de uma vez 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
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0


Ir para o topo Ir para baixo

[RESOLVIDO] Player perde toda a vida de uma vez Empty Re: [RESOLVIDO] Player perde toda a vida de uma vez

Mensagem por PedroX Dom 19 Jul 2020, 01:58

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;
    }
}

_________________


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:
PedroX
PedroX

Games Ranking : Nota B

Notas recebidas : C+B
Data de inscrição : 26/07/2008
Reputação : 311
Número de Mensagens : 6087
Prêmios : [RESOLVIDO] Player perde toda a vida de uma vez Empty

Medalhas x 0 Tutoriais x 17 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

https://web.whatsapp.com/send?phone=5519995935953&text=Pedro

Diemorth e Paulomm32 gostam desta mensagem

Ir para o topo Ir para baixo

[RESOLVIDO] Player perde toda a vida de uma vez Empty Re: [RESOLVIDO] Player perde toda a vida de uma vez

Mensagem por Paulomm32 Seg 20 Jul 2020, 16:55

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! Happy
Paulomm32
Paulomm32

Data de inscrição : 13/07/2020
Reputação : 0
Número de Mensagens : 46
Prêmios : [RESOLVIDO] Player perde toda a vida de uma vez 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
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0


Ir para o topo Ir para baixo

[RESOLVIDO] Player perde toda a vida de uma vez Empty Re: [RESOLVIDO] Player perde toda a vida de uma vez

Mensagem por Ricoh5A22 Qui 26 Nov 2020, 22:22

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! Happy

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
Ricoh5A22

Data de inscrição : 26/11/2020
Reputação : 0
Número de Mensagens : 3
Prêmios : [RESOLVIDO] Player perde toda a vida de uma vez 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
Plataformas :
  • Game Maker Studio 2.0
  • Unity
  • Java
  • C#
  • Godot
  • Javascript
  • C ou C++


polosam gosta desta mensagem

Ir para o topo Ir para baixo

[RESOLVIDO] Player perde toda a vida de uma vez Empty Re: [RESOLVIDO] Player perde toda a vida de uma vez

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