[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]


  • Страница 1 из 1
  • 1
Модератор форума: Spidy, turBO, blitz3d  
Форум мира Blitz3D » Язык Blitz3D » 3D программирование » ИИ
ИИ
K1rusHДата: Четверг, 02.09.2010, 20:33 | Сообщение # 1
ламер
Группа: Пользователи
Сообщений: 37
Награды: 0
Репутация: 1
Статус: Offline
В инете нашёл как делать ИИ.
Вот код который там был представлен. Всё работает. Кубик ползает за кубиком.
dist# = EntityDistance ( bot, cub )
If dist > 2 - проверяет расстояние между двумя объектами.
TurnEntity bot,0,Sgn(DeltaYaw(bot,cub))*0.9,0 – команда поворачивает один объект в сторону другого
MoveEntity bot,0,0,0.03 – двигает бота со скоростью 0.3 вперёд
If EntityCollided (bot,Typestolb) – при столкновении бота с колонной
TurnEntity bot,0,5,0 – бот поворачивает направо.
EndIf – конец условия

Добавил к себе, изменив только MoveEntity bot,0,0,0.03 на MoveEntity bot,0.15,0,0 что бы бот ходил лицом (у меня не кубик же, а моделька чувачка), а не боком. Проблема в том что он теперь не идёт к месту, а движется по огромной окружности, как можно исправить данный код, или можно повернуть как нибудь модельку ? Многое перепробовал всё никак sad Ну или посоветуйте какой нить другой пример ИИ плиз smile Заранее спасибо smile


Blitz3d start error:
Blitz3d hates you!

http://proekti.moy.su/

Сообщение отредактировал K1rusH - Четверг, 02.09.2010, 20:35
 
deejexДата: Пятница, 03.09.2010, 08:08 | Сообщение # 2
заядлый прогер
Группа: Пользователи
Сообщений: 522
Награды: 2
Репутация: 14
Статус: Offline
Quote (K1rusH)
(у меня не кубик же, а моделька чувачка)

RotateMesh тебе в помощь.




 
K1rusHДата: Пятница, 03.09.2010, 13:14 | Сообщение # 3
ламер
Группа: Пользователи
Сообщений: 37
Награды: 0
Репутация: 1
Статус: Offline
rotatemesh не потходит, пробовал rotateentity моделька принимает сторону куда её повернул и движется по прямой ...

Blitz3d start error:
Blitz3d hates you!

http://proekti.moy.su/

Сообщение отредактировал K1rusH - Пятница, 03.09.2010, 13:15
 
Reks888Дата: Среда, 08.09.2010, 06:09 | Сообщение # 4
ламер
Группа: Пользователи
Сообщений: 29
Награды: 1
Репутация: 4
Статус: Offline
Code

;=========================
;Function Go_to
;---------------------------------------------
;Version 3.2
;Author Reks888
;Input:
;  Main - хендл движимого объекта
;  target - хендл целевого объекта
;  Turnspeed# - скорость поворота[0.0..1.0]
;  speed# - скорость передвижения
;Output: нет
;=================================
Function Go_to(main%,target%,Turnspeed#,speed#)
   xt#=EntityX#(target)
   zt#=EntityZ#(target)
   xl#=EntityX#(main)
   zl#=EntityZ#(main)
   cx#=xt -xl   
   cz#=zt-zl   
   cn#=Sqr(cx*cx+cz*cz)   
   cx=cx/cn      
   cz=cz/cn       
     
AlignToVector main,cx,0,cz,0,Turnspeed#
MoveEntity main,0,0,speed#
End Function


Сообщение отредактировал Reks888 - Среда, 08.09.2010, 06:10
 
K1rusHДата: Пятница, 10.09.2010, 11:29 | Сообщение # 5
ламер
Группа: Пользователи
Сообщений: 37
Награды: 0
Репутация: 1
Статус: Offline
Спасибо большое за предоставленный код, всё работает, легко разобрался, но проблема осталась ... Загружаемая модель имеет формат мд2, при движении она идёт боком, если изменять её по Z, а если по X, то лицом, но футкция тогда не работает правильно ...

Blitz3d start error:
Blitz3d hates you!

http://proekti.moy.su/

 
Reks888Дата: Пятница, 10.09.2010, 16:44 | Сообщение # 6
ламер
Группа: Пользователи
Сообщений: 29
Награды: 1
Репутация: 4
Статус: Offline
Открой редактор графики, загрузи модель. Поворачивай и сохраняй пока не начнет идти прямо
 
Форум мира Blitz3D » Язык Blitz3D » 3D программирование » ИИ
  • Страница 1 из 1
  • 1
Поиск: