Conectar-se
Quem está conectado
22 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 22 Visitantes

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Ranking : Sem avaliações
Data de inscrição : 02/07/2017
Número de Mensagens : 7
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0
Ver perfil do usuário

Ajuda com colisão

em Qua 05 Jul 2017, 12:58
Olá, tenho uma duvida com um script que não está dando muito certo!
Gostária de uma ajuda, agradeço muito!

Então...

Fiz um obj_enemy e um obj_eHprecover(Para recuperar a vida do inimigo de 5 em 5)

>> no step do  obj_eHprecover coloquei:
Código:

if erecuperation == true{
ehp_recharge += 0.2;

if (ehp_recharge >= 5){
ehp_recharge = 0;
if(erecuperar == true){
if(obj_enemy.ehp < obj_enemy.ehpmax){
obj_enemy.ehp += hprecd;
instance_create(obj_enemy.x+10,obj_enemy.y,obj_ehprecShow);
obj_ehprecShow.ehprecd = ehprecd;
   }
  }
 }
}

if place_meeting(x, y, obj_enemy){
erecuperar = true;
}else{
erecuperar = false;
}

Obs: o enemy não está upando a vida quando colidido com o obj_eHprecover e se coloco colisao pelo obj_enemy para ativar o erecuperar do obj_eHprecover, ele simplesmente não se move, sendo que o obj_enemy está como solid e o obj_eHprecover sem o solid!

Gostárai de uma maneira simples que quando o obj_enemy, colidir em qualquer area do obj_eHprecover, o erecuperar seria true, assim com o enemy num determinado valor de vida baixa, ele iria adicionar +5 de vida a cada 5ms.

+1 Pra quem resolver !! ;)


Última edição por rafaelviodres1 em Qua 05 Jul 2017, 13:01, editado 1 vez(es) (Razão : estáva recuperar=true ali '-)
avatar
Ranking : Sem avaliações
Data de inscrição : 21/11/2010
Número de Mensagens : 775
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 25

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Ajuda com colisão

em Qua 05 Jul 2017, 20:47
Oi cara, eu não sei exatamente se isso vai resolver seu problema, mas funcionou muito bem aqui (depende muito dos seus sprites, e como o inimigo vai se posicionar no obj_eHprecover)


No meu caso, o inimigo fica diretamente em cima do obj_eHprecover, e o Origin do sprite deste objeto está centralizado.

Então fiz o seguinte:

no obj_eHprecover
Create
Código:
timer=0 //Esta variável vai contar o tempo até adicionar o HP, é importante que comece em zero

Step
Código:
if collision_point(x,y,obj_enemy,0,1) //Confere se o obj_enemy está colidindo com o ponto central deste objeto
    {
    timer+=0.1 //Se estiver, adiciona ao timer
    }
else {
    timer=0 // Se não estiver, zera o timer
    }
   
if timer>=5  // Se o timer chegar a um certo valor, altere aqui conforme quiser, 5 = 3 segundos + ou -
    {
    obj_enemy.ehp += 5 // Add 5 de hp pro inimigo
    instance_create(obj_enemy.x+10,obj_enemy.y,obj_ehprecShow) // cria o objeto Show
    timer=0 // zera o timer novamente
    }



é só isso ai, dessa forma não deve ter problemas com colisão

vlw
avatar
Ranking : Sem avaliações
Data de inscrição : 02/07/2017
Número de Mensagens : 7
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0
Ver perfil do usuário

Re: Ajuda com colisão

em Qua 05 Jul 2017, 22:29
Bom, ainda não resolveu :\
pois o enemy teria que chegar a x,y do obj_eHprecover, que seria o centro, e no centro está a base aliada.
Então teria que ser uma colisão da area, tipo, se oo inimigo tocar em qualquer parte da sprite sobre colisão(precisa), ai sim iniciaria o timer!

Mais agraadeço a intenção. Happy
avatar
Ranking : Sem avaliações
Data de inscrição : 21/11/2010
Número de Mensagens : 775
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 25

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Ajuda com colisão

em Qua 05 Jul 2017, 23:32
Hey, acabei de notar uma falha no meu codigo que pode ser facilmente resolvida Very Happy

Step
Código:
if timer>=5  // Se o timer chegar a um certo valor, altere aqui conforme quiser, 5 = 3 segundos + ou -
    {
    obj_enemy.ehp += 5 // Add 5 de hp pro inimigo
    instance_create(obj_enemy.x+10,obj_enemy.y,obj_ehprecShow) // cria o objeto Show
    timer=0 // zera o timer novamente
    }

Colisao com o inimigo
Código:
timer+=0.1


Testa isso e ve se não da o problema do inimigo não se mover
Ver o tópico anteriorVoltar ao TopoVer o tópico seguinte
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum