Тема: Flight
Показать сообщение отдельно
Старый 14.02.2012, 21:04   #68
FireOwl
Бывалый
 
Аватар для FireOwl
 
Регистрация: 16.09.2009
Адрес: Sun system
Сообщений: 831
Написано 442 полезных сообщений
(для 1,836 пользователей)
Ответ: 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*-алгоритма.
__________________
N"Gasta! Kvata! Kvakis!
Ahkstas so novajxletero (oix jhemile) so Ranetauw.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Nikich (14.02.2012)