Тема: FAQ по B3D
Показать сообщение отдельно
Старый 16.01.2008, 02:04   #97
tormoz
Гигант индустрии
 
Аватар для tormoz
 
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений
(для 4,437 пользователей)
Ответ: FAQ по B3D

в маленькой аркадке функция управления анимацией занимает 230 строк.
Там сам черт ногу сломит.
))

Нужно пользоваться переменными . тогда все просто

he\a_seq=AnimSeq (he\en)

управление:
If sit_key Or he\pickup

     If up_key Or down_key
        he\mode=1:he\speed=max*1.25:he\seq=roll:he\tran=10
     Else
        If  (he\seq<>roll)Or(he\seq=roll And AnimTime(he\en)>=13)
          he\mode=1:he\speed=.5:he\seq=sit:he\tran=10     
        EndIf   
    EndIf 
     
      
Else
    If  (he\seq<>roll)Or(he\seq=roll And AnimTime(he\en)>=13)
     If up_key  Or down_key
        he\mode=1:he\speed=max*1.25:he\seq=run_up:he\tran=10
     EndIf 
    EndIf 
EndIf
.....

анимация:

If he\seq<>he\a_seq
   Animate he\en,he\mode,he\speed,he\seq,he\tran
EndIf  

какая то пост-обработка:

If he\seq=jump
     If AnimTime# (he\en)>=19 
       he\mode=2:he\speed=.15:he\seq=jump_as:he\tran=20
   EndIf
EndIf
If he\seq=jump2
     If AnimTime# (he\en)>=13 
       he\mode=2:he\speed=.15:he\seq=jump_as:he\tran=20
   EndIf
EndIf
весь код для примеры вырван из реального проекта. конечно это малые кусочки большой функции.
Главное - понять принцип
Он удобен
__________________
(Offline)
 
Ответить с цитированием