условие дистанции для типов
Всем привет!
Подскажите пожалуйста, как бы это исправить чтобы объект сразу двигался, а не ждал пока дистанция станет больше 8? И чтобы действие происходило только один раз..Спасибо. For a.Zona=Each Zona If EntityDistance(cam,a\entity)<8 Then ShowEntity v\alien PositionEntity v\alien, a\x, a\y+1, a\z EndIf PointEntity v\alien ,cam MoveEntity v\alien ,0,0,.004 Next |
Ответ: условие дистанции для типов
Код:
If EntityDistance(cam,a\entity)<=8 |
Ответ: условие дистанции для типов
Цитата:
|
Ответ: условие дистанции для типов
Цитата:
|
Ответ: условие дистанции для типов
Цитата:
Type Zona Field entity Field name Field x# Field y# Field z# End Type Type Monstr Field alien End Type Zcub=CreateCube() HideEntity Zcub For i=1 To 5 a.Zona=New Zona a\entity=CopyEntity(Zcub) a\name=1 a\x=-10 a\y=0 a\z=25 PositionEntity a\entity, a\x, a\y, a\z ............................... .......................... a.Zona=New Zona a\entity=CopyEntity(Zcub) a\name=5 a\x=10 a\y=0 a\z=5 PositionEntity a\entity, a\x, a\y, a\z Next Vrag=CreateCube() HideEntity Vrag v.Monstr=New Monstr v\alien=CopyEntity(Vrag) HideEntity v\alien Repeat For a.Zona=Each Zona If EntityDistance(cam,a\entity)<8 Then ShowEntity v\alien PositionEntity v\alien, a\x, a\y+1, a\z EndIf PointEntity v\alien ,cam MoveEntity v\alien ,0,0,.004 Next |
Ответ: условие дистанции для типов
значит тебе просто нужно для выполнения кода проверить два условия дистанцию и значение которое скажет запущен этот v или нет.
|
Ответ: условие дистанции для типов
Проблема в неправильной организации логики ИИ.
Советую разбить на 2 блока: 1 блок принятия решений - переключение состояний (сплю, стреляю, преследую и тп и тд) 2 блок исполнения - реализуем состояние в действие - двигаемся, стреляем, и тд и тп |
Ответ: условие дистанции для типов
Цитата:
Цитата:
|
Ответ: условие дистанции для типов
Цитата:
Zona=CreateCube() PositionEntity Zona,0,0,20 Vrag=CreateCube() PositionEntity Vrag,0,1,20 HideEntity Vrag While Not KeyHit(1) If EntityDistance(cam,Zona)<10 Then g=1 If g ShowEntity Vrag PointEntity Vrag ,cam MoveEntity Vrag ,0,0,.1 EndIf Для одного работает норм Но для типов у меня не получается правильно написать. Может потому что для одного позиция указывается до цикла, а в типах в цикле...а если указываю позицию при заполнении типа, работает не правильно:( Подскажите как исправить, а то с типами такая путаница.... |
Ответ: условие дистанции для типов
Цитата:
Разобраться как юзать типы. В помощь: http://blitzetc.ru/ |
Ответ: условие дистанции для типов
Цитата:
|
Ответ: условие дистанции для типов
Цитата:
Код:
For a.Zona=Each Zona С логикой проблема. Я ваще не понял чего ты хотел добиться. Кто за кем должен бежать? по какому условию? |
Ответ: условие дистанции для типов
Цитата:
Мысль такая. Создаём тип пивотов и раскидываем их в лабиринте(пока это кубики в типе Zona, поскольку пивотов не видно) в цикле Проверяем дистанцию между камерой и пивотом, если меньше указанной, создаём в позиции пивота копию монстра который сразу атакует.:super: А может их всех прописать в один тип? |
Ответ: условие дистанции для типов
Так и делай КАК ты написал:
Перебирай пивоты, если пора - создавай монстра, ставь в координаты пивота и "выключай" пивот (чтобы монстры не создавались в цикле каждый проход) А уже в отдельном цикле перебора монстров командуй ими. И лучше разбей все на функции (создание, перебор и тд) и вызывай когда надо |
Часовой пояс GMT +4, время: 13:06. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot