Показать сообщение отдельно
Старый 13.12.2011, 01:10   #3
ANIK123
Знающий
 
Аватар для ANIK123
 
Регистрация: 29.11.2010
Сообщений: 244
Написано 31 полезных сообщений
(для 49 пользователей)
Смех Ответ: "way finding", пасаны! :)

Короче в итоге сделал предельно просто: посылается луч и в цикле немножко сдвигается то в один бок то в другой - как-то-так:
bool way_find_switch = false;//переключатель - указывает в какую сторону на данный момент двигаться
usi way_find_turn = 5;//на сколько градусов прибавляется поворот с каждым проходом в цикле
for (; way_find_turn <= 180; ){
	xPointEntity(way_piv, PLAYER->poi);
	if (!way_find_switch){xTurnEntity(way_piv, 0.0f, way_find_turn, 0.0f);}//смотрим вправо
	if (way_find_switch){xTurnEntity(way_piv, 0.0f, -way_find_turn, 0.0f); way_find_turn += 5;}//и влево + плюсуем поворот
	xTFormVector(0.0f, 0.0f, see_range - 3, way_piv, 0);//смотрим
	xPhysicsRayCast(xEntityX(way_piv), xEntityY(way_piv), xEntityZ(way_piv), xEntityX(way_piv) + xTFormedX(), xEntityY(way_piv) + xTFormedY(), xEntityZ(way_piv) + xTFormedZ(), false);//присматриваемся)))
	way_find_switch = !way_find_switch;
	if (xPhysicsGetHitEntity(0) != 0){
		if (xPhysicsGetHitEntity(0) == PLAYER->poi){
			find = 1;
			//игрок найден!)
			break;
		}
		else {
		}
	}
	else {//нашли ближайший обход)
               }
}
С какой стороны ближе мы перестанем натыкатся на преграду - в эту сторону и двигаемся
Короче фигня но пока сойдет


ЗЫ: А можно по-подробнее о Spherecast и о триггерном состоянии? Собсно интересует их реализация в ксорсе)
__________________
Intel Core i3-4005U (1.7 ГГц), 4 ГБ ОЗУ, nVidia GeForce 940M 4 ГБ, Win8.1
(Offline)
 
Ответить с цитированием