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


[DÚVIDA] Colisão de objeto afetar apenas um

3 participantes

Ir para baixo

[DÚVIDA] Colisão de objeto afetar apenas um Empty [DÚVIDA] Colisão de objeto afetar apenas um

Mensagem por Dragonrod Qua 28 Jun 2017, 22:32

Olá a todos os membros, tudo bem?

Tenho uma dúvida recorrente há algum tempo e não encontrei nenhum modo de sequer procurar como fazer isso...

Vou tentar demonstrar minha dúvida ilustrando-a nesta imagem:
[DÚVIDA] Colisão de objeto afetar apenas um Ayudameeee_by_dragonrod342-dbeeb72

Em um código de colisão comum, os objetos verde e azul estariam colidindo com o ataque em vermelho, então ambos tomariam dano, porém, gostaria de saber como faço para este mesmo ataque atingir apenas um dos alvos de cada vez, seja o que estiver mais próximo, ou o que estiver com o depth maior/menor, ou qualquer modo mais fácil/prático que vossas senhorias conhecerem.

Espero não ter feito essa explicação muito confusa XD
Agradeço-lhes desde já
Dragonrod
Dragonrod

Games Ranking : Sem avaliações

Data de inscrição : 28/06/2017
Reputação : 0
Número de Mensagens : 5
Prêmios : [DÚVIDA] Colisão de objeto afetar apenas um 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

https://dragonrod342.deviantart.com/

Ir para o topo Ir para baixo

[DÚVIDA] Colisão de objeto afetar apenas um Empty Re: [DÚVIDA] Colisão de objeto afetar apenas um

Mensagem por Thiago Jaqueta Qui 29 Jun 2017, 02:48

Ao invés de usar um evento de colisão, cheque pela colisão no step do seu inimigo. Caso tenha colisão e o ataque ainda não tenha acertado ninguem, o inimigo vai determinar que o ataque ja acertou alguem.
Código:

var attack_hit;
attack_hit=instance_place(x,y,obj_attack); //Diferente do place_meeting que só retorna boolean, esta função retorna o ID do ataque

if (attack_hit!=noone) //Se tem colisão com alguem
{
    if (attack_hit.hit == false) //Se o ataque ainda não atingiu ninguem
    {
        hp-=attack_hit.damage; //Tira HP...
        hspeed=attack_hit.knockback*sign(x-attack_hit.x); //Aplica knockback etc...
        with(attack_hit)
        {
            hit=true; //E determina que esse ataque ja acertou alguém, caso algum outro inimigo seja atingido por ele, nada vai acontecer por causa da linha 6.
            instance_destroy(); //E talvez seja uma boa ideia destruir o ataque pra evitar que acerte mais inimigos nos próximos steps
        }
    }
}

GL! [DÚVIDA] Colisão de objeto afetar apenas um 31640
Thiago Jaqueta
Thiago Jaqueta

Games Ranking : Sem avaliações

Data de inscrição : 29/06/2017
Reputação : 7
Número de Mensagens : 8
Prêmios : [DÚVIDA] Colisão de objeto afetar apenas um 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

https://discord.gg/9VuJYjr

Ir para o topo Ir para baixo

[DÚVIDA] Colisão de objeto afetar apenas um Empty Re: [DÚVIDA] Colisão de objeto afetar apenas um

Mensagem por Leandro Nery Qui 06 Jul 2017, 00:30

Boa noite. Não entendi o que significa attack_hit.hit na 6 linha. Esse hit.hit não consegui entender
Leandro Nery
Leandro Nery

Data de inscrição : 10/01/2013
Reputação : 0
Número de Mensagens : 1
Prêmios : [DÚVIDA] Colisão de objeto afetar apenas um 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

[DÚVIDA] Colisão de objeto afetar apenas um Empty Re: [DÚVIDA] Colisão de objeto afetar apenas um

Mensagem por Thiago Jaqueta Qui 06 Jul 2017, 02:13

Leia o código de novo. O attack_hit é uma variável temporária que contem o ID do objeto do ataque (ID é um numero de identificação próprio de cada objeto, tipo um CPF dele :v).

A variavel "hit" do nosso objeto de ataque, determina se o ataque já atingiu alguém ou não. A linha 6 checa isso e caso seja seja falso, ele vai transformar em verdadeiro, para garantir que outro objeto NÃO leve hit dele também. Entendeu agora?
Thiago Jaqueta
Thiago Jaqueta

Games Ranking : Sem avaliações

Data de inscrição : 29/06/2017
Reputação : 7
Número de Mensagens : 8
Prêmios : [DÚVIDA] Colisão de objeto afetar apenas um 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

https://discord.gg/9VuJYjr

Ir para o topo Ir para baixo

[DÚVIDA] Colisão de objeto afetar apenas um Empty Re: [DÚVIDA] Colisão de objeto afetar apenas um

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo


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