Показать сообщение отдельно
Старый 25.05.2009, 02:06   #4
karry
Нуждающийся
 
Регистрация: 19.05.2009
Сообщений: 82
Написано 8 полезных сообщений
(для 10 пользователей)
Ответ: Скорость юнита

Вроде работает...но !
Я пишу так :

;move mode init
	Select unit01\movemode
	Case 1
		If pickhover<>0
			If EntityName$(pickhover)="Ground"
				PositionEntity move_icon,PickedX(),.1,PickedZ()
				ShowEntity move_icon
			EndIf
		EndIf
	Case 0
		If unit01\movemode=0 Then HideEntity move_icon
	Case 2
		dis#=EntityDistance#(unit01\pivot,move_icon)
		If unit01\movemode=2 And dis>.5 Then
			PositionEntity move_icon,unit01\wpx,.01,unit01\wpz
			PointEntity unit01\pivot,move_icon
			MoveEntity unit01\pivot,0,0,.5
		Else If dis<=.5 And dis>0 Then 
			MoveEntity unit01\pivot,0,0,dis
		Else If dis=0 Then 
			unit01\movemode=0
		EndIf
	End Select
movemode 0 - юнит стоит на месте.
movemode 1 - состояние выбора точки на земле для помещения waypoint.
movemode 2 - юнит в движении.
move_icon это waypoint, который остается на земле при клике, и к которому идет юнит. Когда юнит достигает цели картинка move_icon должна прятаться.
Большую часть времени юнит точно достигает цели, то есть расстояние между юнитом и целью становится равно нулю. Но иногда что-то сглючивает, и movemode так и остается равным 2, хотя юнит достиг цели. А расстояние от юнита до цели при этом становится равным чему-то вроде 1.190059e-007 и тому подобное.


Кстати, как бы еще заставить юнит поворачиваться к waypoint плавно, а не в один фрейм ?
Я пытался сделать так : припарентил к юниту еще один пивот, pointentity его на waypoint, затем считал его entityyaw в переменную, и хотел использовать разницу между этой переменной и entityyaw самого юнита, но не тут-то было, в большинстве случаев юнит достигает цели и начинает бесконечно кружить на месте...
(Offline)
 
Ответить с цитированием