forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Синхронизация чилдов (http://forum.boolean.name/showthread.php?t=12898)

DeeJex 12.07.2010 13:12

Синхронизация чилдов
 
мне нужна функция синхронизации позиции и ориентации чилдов и чилдов чилдов 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


Randomize 18.07.2010 06:16

Ответ: Синхронизация чилдов
 
Блин, ты же у нас крутой, не?
PHP код:

Function SeekChilds(entent2)  
    
Local ichild 
     
    
For i=1 To CountChildren(ent)  
        
child=GetChild(ent,i)  
        If 
child<>0  
            
If CountChildren(child)>0 Then SeekChilds(childent2
            
Local n$=EntityName(child)
            
Local dc FindChild(ent2n)
            If 
dc> -1 Then
                  RotateEntity
(childEntityPitch(dc), EntityYaw(dc), EntityRoll(dc))
                  
PositionEntity(childEntityX(dc), EntityY(dc), EntityZ(dc))
            EndIf
        EndIf  
    
Next  
End 
Function 

UpdateWorld не забываем.
Глобальное локальное изменение и получение значений делай сам.

ARA 18.07.2010 06:50

Ответ: Синхронизация чилдов
 
Цитата:

Сообщение от DeeJex
я считаю, что у меня достаточно опыта для создания игры_своей_мечты.
знаю как делается програмный код со_всеми_наворотами и возможностями

Дада, тут тебе ещё не раз это припомнят :-D
Булко-стайл :sarcastic_hand:


Часовой пояс GMT +4, время: 05:26.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot