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
» player não consegue andar
por 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


[RESOLVIDO] Player perde toda a vida de uma vez

5 participantes

Ir para baixo

vida - [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 : vida - [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

vida - [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 : vida - [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

vida - [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 : vida - [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

vida - [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 : vida - [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

vida - [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 : 2716
Prêmios : vida - [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

vida - [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 : vida - [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

vida - [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 : vida - [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

vida - [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 : vida - [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

vida - [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 : vida - [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

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