Código de colisão no objeto pai
END STEP
Código: Selecionar todos
if (abs(velh) <= max_velh)
{
velh += mid_velh;
}
var _velh = sign(velh);
var _velv = sign(velv);
repeat(abs(velh))
{
if (place_meeting(x + sign(velh), y, Bloco) &&
!place_meeting(x + sign(velh), y - 1, Bloco)) y--;
if (!place_meeting(x + sign(velh), y, Bloco) &&
!place_meeting(x + sign(velh), y + 1, Bloco) &&
place_meeting(x + sign(velh), y + 2, Bloco)) y++;
if (place_meeting(x + _velh, y, Bloco))
{
velh = 0;
break;
}
if (place_meeting(x + _velh, y, Pai_inimigo))
{
velh = 0;
break;
}
x += _velh;
}
repeat(abs(velv))
{
if (place_meeting(x, y + _velv, Bloco))
{
velv = 0;
break;
}
if (place_meeting(x, y + _velv, Pai_inimigo))
{
velv = 0;
break;
}
y += _velv;
}
STEP
Código: Selecionar todos
case "homming attack":
{
posso = true
velh = 0;
velv = 0;
sprite_index = spindash_partida;
// direçao em que o player precisa ir
var dir = point_direction(Jogador.x, Jogador.y, inimigoMaisProximo.x, inimigoMaisProximo.y); //usando a referencia do inimigo mais proximo e do this (propria instancia executando)
velh = lengthdir_x(velocidade , dir);
velv = lengthdir_y(velocidade , dir);
//direction = point_direction(x, y, inimigo_id.x, inimigo_id.y);
if(sprite_index == spindash_partida && dano == noone && posso)
{
dano = instance_create_layer(x + sprite_width/6, y - sprite_height/65, layer, Dano293054);
dano.dano = dash_atace;
dano.pai = id;
dano.morrer = false;
posso = false;
}
if(place_meeting(x, y, Pai_inimigo))
{
velh = 0;
velv = 0;
estado = "homming attack sai";
image_index = 0;
}
/*if(ataque)
{
estado = "ataque homing";
image_index = 0;
}*/
if(image_index >= image_number-1)
{
homming_podi = false;
}
break;
}
case "homming attack sai":
{
velh = 0;
velv = 0;
sprite_index = Boost_Pulo4299;
if(image_xscale =1)
{
velh2 = -3;
}
if(image_xscale =-1)
{
velh2 = 3;
}
if(ataque)
{
estado = "ataque homing";
velh2 = 0;
velv = 0;
combo = 0;
image_index = 0;
}
if(image_index >= image_number-1)
{
estado = "pulo";
homming_podi = false;
}
break;
}
Código: Selecionar todos
case "voadora vai":
{
atacando = true;
velh = 0 ;
velv = 0;
//velv = 20;
var dir = point_direction(Jogador.x, Jogador.y, inimigoMaisProximo.x, inimigoMaisProximo.y); //usando a referencia do inimigo mais proximo e do this (propria instancia executando)
velh = lengthdir_x(velocidade , dir);
velv = lengthdir_y(velocidade , dir);
sprite_index = Sprite275
if(sprite_index == Sprite275 && dano == noone && posso)
{
dano = instance_create_layer(x + sprite_width /8 + velh * 2, y - sprite_height / 55, layer, Dano2951)
dano.pai = id;
dano.morrer = false;
posso = false;
}
if(chao)
{
estado = "voadora para";
}
if (place_meeting(x, y, Pai_inimigo))
{
estado = "voadora para2";
}
break;
}
case "voadora para":
{
atacando = true;
velh= 0 ;
velv = 0;
sprite_index = Chute_ar_baixo_terminado1;
if(image_xscale =1)
{
velh2 = 0;
}
if(image_xscale =-1)
{
velh2 = -0;
}
if(image_index >= image_number-1)
{
estado = "parado";
if(dano)
{
instance_destroy(dano, false);
dano = noone;
}
}
break;
}
Código: Selecionar todos
case"pisada":
{
posso = true;
combo = 0;
sprite_index = Sprite329
if(sprite_index == Sprite329 && dano == noone && posso)
{
dano = instance_create_layer(x + sprite_width/6, y + sprite_height/65, layer, Dano293054);
dano.dano = dash_atace;
dano.pai = id;
dano.morrer = false;
posso = false;
}
velh = 0;
velv = 30;
if(chao)
{
estado = "voadora para";
image_index = 0;
}
if(place_meeting(x, y, EggPawn_Samurai))
{
estado = "voadora para2";
}
break;
}