Página 1 de 1

Problemas com invencibilidade e player sendo empurrado

Enviado: Ter Jan 22, 2019 10:43 pm
por 186557
Basicamente eu estava tentando fazer com que ao tomar dano o player ficasse piscando e invencivel por um curto tempo. O problema é que quando o player para de piscar quando ele toma outro dano o sistema de empurrar fica meio "confuso" pois as vezes o inimigo toca a esquerda do personagem e ele é empurrado para a direita e vice-versa mas é algo intermitente. Como posso resolver isso?

Código: Selecionar todos

//Colisao com inimigo
if (place_meeting(x,y,obj_inimigo)) {
if invencivel == false
{
hp -= 10;
playerRecoil=4;
piscando=1
piscando_alarm=1
alarm[2]=2*room_speed
invencivel = 1
}
else if piscando == true {
alarm[3] = 30
hp -=0
}
}

//Fazer o player ser empurrado ao tocar no inimigo

if(playerRecoil!=-1){
    playerRecoil-=1;
    if (sign(obj_inimigo.x - obj_player.x)){
        hspeed-=7;
         } else if (sign(obj_inimigo.x + obj_player.x)){
         hspeed+=7;
        }
   playerStop=1;
}

if(playerRecoil=-1 && playerStop=1){
    hspeed=0;
    playerStop=-1;   
    }
Alarme 3

Código: Selecionar todos

invencivel = false;

Re: Problemas com invencibilidade e player sendo empurrado

Enviado: Qua Jan 23, 2019 10:02 pm
por None
Eu achei meio bizarro esse uso do sign, para checar se o objeto está a esquerda ou direita do player você só precisa usar o player.x - outro.x, se o valor for negativo o outro está a direita, se for positivo ele está à esquerda