﻿################################################################################
### description:
### move and rotation, with fade in


from tcaxPy import *


def tcaxPy_Init():
    global _FD                              # frame duration, in millisecond
    global _Fs
    global _Blur
    global _H
    _FD = 1000 / GetVal(val_FXFPS)
    _Fs = GetVal(val_FontSize)
    _Blur = GetVal(val_Blur)
    _H = GetVal(val_FontSize)
    


XSLICE = eval(input("请输入X轴上切片数,数值越大切得越大,生成ass体积越小(推荐1~5之间),必须是大于零的数.= "))
YSLICE = eval(input("请输入Y轴上切片数,数值越大切得越大,生成ass体积越小(推荐1~5之间),必须是大于零的数.>= "))

def drange(start, stop, step):
    r = start
    while r < stop:
        yield r
        r += step

def tcaxPy_Fin():
    pass


time_gap = 1    # you can change this value to 0, or 2 or any other number
time_fac = 1    # you can change this value to 0, or 2 or any other number

def tcaxPy_Main(_i, _j, _n, _BT, _ET, _SK, _KT, _X, _Y, _A, _TXT):
    ASS_BUF  = []        # used for saving ASS FX lines
    TCAS_BUF = []        # used for saving TCAS FX raw data
    
    _7X =  _X    - int(_A / 2 + 0.5)      
    _7Y =  _Y     - int(_H / 2 + 0.5)  

    duration = 10 * _FD
    ts = _BT + _j * time_fac * _FD / 10 - time_gap * _FD / 10 - duration / 10
    te = _BT + _j * time_fac * _FD / 10 - time_gap * _FD / 10
    

    for i in drange(0,_A,XSLICE):
        for j in drange(0,_H,YSLICE):
            RandX = -100+randint(-50,50)
            RandY = randint(50,70)
            
            CLIP = clip(_7X+i,_7Y+j,_7X+i+2,_7Y+j+2)
            MOVE_CLIP = move(_X+RandX,_Y+RandY,_X,_Y)+CLIP+fad(randint(5,120),0)
            if  _Blur > 0:
                MOVE_CLIP +=blur(_Blur)
            ass_main(ASS_BUF,SubL(ts-randint(-20,30), te), MOVE_CLIP, _TXT)


    return (ASS_BUF, TCAS_BUF)



