Создание вейпоинтов для ботов |
||
|
Привет всем геймдеверам! В этой статье я опишу подробно
как создать вейпоинты для ботов! И так приступим! Graphics3D 800,600,16,1 pol=CreatePlane () ;Создание пола
UpdateWorld Flip
Graphics3D 800,600,16,1 camera=CreateCamera () ;Создание камеры pol=CreatePlane () ;Создание пола bot=CreateSphere (8);Создание бота (сферы) Repeat UpdateWorld Flip Сначала сделаем чтоб камера следила за ботом(для удобства). Вставьте в основной цикл строку: PointEntity camera,bot Теперь непосредственно приступим к созданию вейпоинтов. В качестве вейпоинтов можно использовать любой объект, но лучше всего использовать пивоты так как они невидимы в игре. Создадим первый вейпоинт: waypoint1=CreatePivot () Теперь мы заставим двигаться бота в сторону вейпоинта (только первый раз нельзя использовать команду PointEntity, просто направьте его вручную). Вставьте строчку в главный цикл программы: MoveEntity bot,0,0,.02 Мы видим, что бот двигается к первому вейпоинту, а за тем останавливается. Давайте создадим ещё два вейпоинта: waypoint2=CreatePivot () waypoint3=CreatePivot () А что дальше? А дальше мы пишем инструкцию по которой будет двигаться наш бот: Sluch=Rnd(1,2) If EntityDistance (bot,waypoint1)<.1 Then If EntityDistance (bot,waypoint2)<.1 Then If EntityDistance (bot,waypoint3)<.1 Then И ещё что бы было заметно движение бота по полу создайте два куба: box1=CreateCube() Если запустить программу, то мы увидим как наш бот двигается от одного вейпоинта к другому. Для того что бы сделать его движение случайным добавьте строчку в самый верх программы: SeedRnd MilliSecs() Вот тот код, который должен был получится: Graphics3D 800,600,16,1 camera=CreateCamera () ;Создание камеры pol=CreatePlane () ;Создание пола box1=CreateCube() ;Создание куба 1 bot=CreateSphere (8) ;Создание бота (сферы) waypoint1=CreatePivot () ;Создание первого вейпоинта waypoint2=CreatePivot () ;Создание второго вейпоинта waypoint3=CreatePivot () ;Создание третьего вейпоинта Repeat MoveEntity bot,0,0,.07 ;бот двигается по оси Z
If EntityDistance (bot,waypoint1)<.1 Then ;Если дистанция между
ботом и вейпоинтом 1 меньше 0.1, то If EntityDistance (bot,waypoint2)<.1 Then ;Если дистанция между
ботом и вейпоинтом 2 меньше 0.1, то If EntityDistance (bot,waypoint3)<.1 Then ;Если дистанция между
ботом и вейпоинтом 3 меньше 0.1, то UpdateWorld Flip Ну вот и всё, что я хотел здесь сказать. Основу создания вейпоинтов
вы теперь знаете. Вам остаётся только экспериментировать и применять
свои знания.
|
|