Добрый день!
Подскажите где можно найти статью или иной вид материала для работы(в нуждах редактора) с такими функциями, как точка со смещением, возможность создать область применения заклинания конусом и другие около-математические штуки для триггерного заклинания. Ни разу не ставил себе подобные задачи, но вот появилась необходимость, а принцип работы я вовсе понять не могу.
Если коротко, заклинание примитивное: юнит применяет способность с целью "точка" в пределах расстояния 120, а-ля Удар Щитом. Все противники по конусу от него отбрасываются назад по траектории facing angle.
Возможно, если кто-нибудь напишет пример здесь, сам смогу понять принцип, чтобы потом работать над более сложными задачами. Нужно с чего-то начать.
Знаю только GUI, но добротно.
Заранее спасибо.

Принятый ответ

`
ОЖИДАНИЕ РЕКЛАМЫ...
5
26
4 года назад
Отредактирован Hate
5
переходить с гуи на jass или lua, будете жрать кактус иначе

полярное смещение это
x + distance * Cos(angle * bj_DEGTORAD)
y + disatnce * Sin(angle * bj_DEGTORAD)
находится ли точка в определенном окне углов можно функцией

function AngleBetweenXY_DEG( A_x,  A_y,  B_x,  B_y)
        return Atan2(B_y - A_y, B_x - A_x) * bj_RADTODEG
    end
^^^ можно просто сделать функцию с радианами

function IsPointInAngleWindow(facing, window, start_x, start_y, point_x, point_y)
		local angle  = AngleBetweenXY_DEG(start_x, start_y, point_x, point_y)
		local float_angle

		if angle < 0. then angle = angle + 360. end


		if facing < angle then
			float_angle = angle - facing
			if float_angle > 180. then float_angle = (facing - angle + 360.) end
		else
			float_angle = facing - angle
			if float_angle > 180. then float_angle = (angle - facing + 360.) end
		end

		return float_angle <= window
	end
0
17
4 года назад
0
0
27
4 года назад
0
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.