Опитвам се да направя самонасочващ се снаряд за моята игра bullet hell и трябва да мога да изчисля ъгъла между целта и снаряда спрямо ъгъла на снаряда (0 градуса ще бъде посоката, в която сочи снарядът). В момента изчисляването на ъгъла е абсолютно направено с помощта на point_direction, но проблемът е, че когато целта е в 4-ия сектор, снарядът започва да се насочва в грешна посока. Друг проблем е, че ако снарядът се завърти на 180 градуса, докато преследва целта (или се движи надолу, ако е изстрелян от врага), посоката на управление ще се обърне. Опитах и функции mp_potential_, но тяхното намиране на пътя е твърде „агресивно“.
Ето как изглежда текущият ми код:
if(instance_exists(obj_fighter1)) {
var target;
target = instance_nearest(x, y, obj_fighter1);
if(target != noone) {
var angle_to_target;
angle_to_target = point_direction(x,y,target.x,target.y);
if(angle_to_target < direction) {
direction -= 2;
}
if(angle_to_target > direction) {
direction += 2;
}
}
}
Дано тази информация е достатъчна и разбираема.