Показать сообщение отдельно
Старый 12.07.2010, 13:12   #1
DeeJex
Разработчик
 
Аватар для DeeJex
 
Регистрация: 24.02.2010
Адрес: Новороссийск
Сообщений: 485
Написано 112 полезных сообщений
(для 329 пользователей)
Синхронизация чилдов

мне нужна функция синхронизации позиции и ориентации чилдов и чилдов чилдов source entity и dest по именам.
т.е. SyncChilds(source_entity,dest_entity)
естественно, нужно юзать рекурсию, но т.к. проверяются чилды не одной, а двух интити, значит нужно юзать двойную рекурсию, я не совсем понимаю как это реализовать,
кто может, пожалуйста, напишите такую функцию.

моя неудачная попытка:
Function ChildSyncer(source,dest) 
For tmp_i1 = 1 To CountChildren(source)  
For tmp_i2 = 1 To CountChildren(dest) 
  tmp_c1 = GetChild(source,tmp_i1) 
  tmp_c2 = GetChild(dest,tmp_i2) 
   If EntityName(tmp_c1)=EntityName(tmp_c2) Then 
    PositionEntity tmp_c1,EntityX(tmp_c2),EntityY(tmp_c2),EntityZ(tmp_c2) 
    RotateEntity tmp_c1,EntityPitch(tmp_c2),EntityYaw(tmp_c2),EntityRoll(tmp_c2) 
   End If 
   If CountChildren(tmp_c1) Then ChildSyncer(tmp_c1,dest) 
   If CountChildren(tmp_c2) Then ChildSyncer(source,tmp_c2) 
Next 
Next 
End Function
__________________
299 792 458

Последний раз редактировалось DeeJex, 16.07.2010 в 00:11.
(Offline)
 
Ответить с цитированием