Ответ: Flight
А в чем сложность?
Для ботов создать тип. Сделать функцию "апдейта ботов", которая будет их всех перебирать, и в зависимости от положения каждого отдельного бота и координат игрока, направлять их в нужную сторону.
Эту функцию вызывать из главного цикла, там где все обновляется.
Готово.
Конкретно сдвиг бота в нужную сторону можно сделать пользуясь формулами (bx,by - бот, px, py - игрок)
d=sqrt((bx-px)*(bx-px)+(by-py)*(by-py)) (это расстояние между ними по теореме Пифагора)
if d>x then (х - расстояние на которое бот должен подойти к игроку)
bx=bx+(px-bx)/d*speed
by=by+(py-by)/d*speed (где speed - скорость, с которой бот двигается)
endif
А вот с препятствиями будет сложнее. Можно просто сделать так, чтобы бот останавливался, если впереди на пути стена. Если этого недостаточно, придется гуглить алгоритмы поиска пути, вроде A*-алгоритма.
|