Mam taki dość dziwny problem...
O ile wszystko dobrze działa..jak podejdę do wroga z lewej,lub z prawej strony,to już jest źle(góra,dół) jak wchodzę po drabinie i jestem w zasięgu wtedy wroga lub nad wrogiem jest np platforma i Ja na niej stoję,to wróg dostaje coś jak paraliżu..i kręci się w miejscu...to tak jakby reagował na mój dystans w pozycji y...
Ktoś pomoże mi jak rozwiązać ten problem?? on tylko występuje w tych dwóch przypadkach,czyli gdy mam pod sobą w pobliżu wroga lub nad sobą wroga..lub jak na niego skaczę żeby go zabić.
tutaj Step wroga
GML
//Prosta sztuczna inteligencja wroga
image_angle = direction;
if distance_to_object(obj_bohater)<90
{
if obj_bohater.x>x image_xscale=1;
else image_xscale=-1;
if (place_free(x+image_xscale*5,y) && instance_position(x+image_xscale*5,y+32,par_sciana)) x+=image_xscale*5;
}
if place_meeting(x,y,par_solid) || place_meeting(x,y,par_solid_entity) && image_xscale = 1
{
image_xscale = -1;
}
if place_meeting(x,y,par_solid) || place_meeting(x,y,par_solid_entity) && image_xscale = 1
{
image_xscale = 1;
}
// Odwracanie wroga od obj_niewidzialna_przeszkoda
if place_meeting(x+5,y,obj_niewidzialna_przeszkoda) && image_xscale = 1
{
image_xscale = -1;
}
if place_meeting(x-5,y,obj_niewidzialna_przeszkoda) && image_xscale = -1
{
image_xscale = 1;
}
//Zachowanie bohatera na platformy z nalozona par_przeswitujaca_platforma
if place_meeting(x+5,y,par_przeswitujaca_platforma) && image_xscale = 1
{
image_xscale = -1;
}
if place_meeting(x-5,y,par_przeswitujaca_platforma) && image_xscale = -1
{
image_xscale = 1;
}
if !place_meeting(x+sign(image_xscale),y-2,par_solid) {
if image_xscale > 0 {
hspd = min(hspd+sign(image_xscale),2);
} else if image_xscale < 0 {
hspd = max(hspd+sign(image_xscale),-2);
}
}
if hspd == 0 {
image_xscale *= -1;
unstick(8);
}
//Przeciwnik mruga
if hurtClock > 0 {
visible = !visible;
hurtClock -= 1;
} else {
visible = true;
}
if hp <= 0 {
instance_destroy();
dead = true; //wywolanie alarmu,gdy wrog jest martwy
global.pScore += 100;
instance_create(x,y-50,choose(obj_moneta,obj_gwiazdka,obj_serce)) // Losowy element,kiedy wrog zginie np gwiazdka,moneta,serce itp
with instance_create(x,y,obj_ginaca_jednostka) {
sprite_index = spr_wrog_umiera; //zmiana sprita
image_xscale = other.image_xscale;
image_yscale = other.image_yscale;
hspd = other.hspd;
vspd = other.vspd;
audio_play_sound(dzwiek_wrog_umiera, 1, false); //odtwarzamy dzwiek przy smierci wroga
}
}
//respawn wroga
if (dead == true)
{
instance_create(x,y,obj_spawn);
}