в маленькой аркадке функция управления анимацией занимает 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
весь код для примеры вырван из реального проекта. конечно это малые кусочки большой функции.
Главное - понять принцип
Он удобен