среда, 18 ноября 2015 г.

Расстояние до цели (2D)

Иногда в своих играх нужно определить расстояние до цели (дальность выстрела, аура, урон и тд). Тогда нужно использовать простейшую формулу с геометрии - теорему Пифагора (сума квадратов катетов прямоугольного треугольника равна квадрату гипотенузы).

Нам нужно найти гипотенузу треугольника ( с ). Для этого найдем сначала длину каждого катета. Катет "b" является осью X, поэтому нужно отнять х-координату первой  точки от х-координаты второй точки  х=х2-х1  (или наоборот x=х1-х2, на результат это не повлияет). Катет "а" это ось Y: y=y2-y1. После этого подносим к квадрату x и y, суммируем значения и находим корень квадратный. Всё просто :)
Как это будет выглядеть в AGK (напишем функцию):

Function  Distance(x1,y1,x2,y2)
x=x2-x1
y=y2-y1
result#=Sqrt(x*x+y*y)
endfunction result#


Sqrt() - корень квадратный
result# - расстояние (# означает, что это число может быть не целым)  
(*На других языках программирования будет практически тоже самое)

В завершение, как это будет в коде (например):

If Distance(hero_x,hero_y,enemy_x,enemy_y)<100 then game_over=1


Комментариев нет:

Отправить комментарий