Re: Перемещени объектов
WareZ_MEN, а ты чо за стратегию пишеш? мож лучше к нам присоеденишся, а?
насчет угла:
скорее всего тебе нужен плавный поворот тока вокруг оси Y. Имеем два объекта ent1,ent2. ent1 нужно плавно повернуть на ent2.
1. Определяем разность углов, командой DeltaYaw, синтаксис такой dy=deltayaw(ent1,ent2), возвращает угол, на который надо повернуть объект ent1, чтобы он стал "смотреть" на объект ent2.
2. Собственно поварачиваем объект на некоторую часть етого значения, например TurnEntity ent1,0,deltaYaw(ent1,ent2)*0.1,0.
3. Возможно надо поварачивать объект по другому (РТС как - никак), т.е. чтобы объект поварачивался на нное число градусов пока не станет смотреть на ent2, для етого мы делаем так:
spd - скорость с которой крутится объект, тогда
if abs(deltayaw(ent1,ent2))>spd ; если объект повернут на угол, больше предельной скорости вращения
turnentity ent1,0,sgn(deltayaw(ent1,ent2))*spd,0
;sgn - возвращает знак аргумента, т.е. положительное число вернет 1, отрицательное -1, а ноль вернет 0.
else
turnentity ent1,0,deltayaw(ent1,ent2),0 ; повернем наш объек прям на тот
endif
вроде все, могу ошибаться в команде sgn, возможно она пишется как sign.
по поводу перемещения - MoveEntity. Двигать скорее всего придется тогда и только тогда, когда етот самый результат (DeltaYaw), меньше определенного значения (45 например), чтоб объект не пытался уехать назад.
|