- UID
- 702
- 积分
- 1002
- 帖子
- 241
- 主题
- 12
- 论坛币
- 2292
- 威望
- 2
- EP值
- 520
- MP值
- 0
- 阅读权限
- 50
- 注册时间
- 2012-9-9
- 在线时间
- 281 小时
- 最后登录
- 2014-4-1
|
- from tcaxPy import *
- from gdiFont import *
- def tcaxPy_Init():
- global _Fs
- global _FD # 一帧的持续时间, 约40毫秒
- global _Spacing # 字体间距
- global GdiFont # 首要字体
- _Fs = GetVal(val_FontSize)
- _FD = 1000 / GetVal(val_FXFPS)
- _Spacing = GetVal(val_Spacing)
- GdiFont = gfInitFont(GetVal(val_FontFaceName), _Fs, _Spacing, GetVal(val_SpaceScale), 0, False)
- def tcaxPy_Fin():
- gfFinFont(GdiFont)
- def tcaxPy_Main(_i, _j, _n, _start, _end, _elapk, _k, _x, _y, _a, _txt):
- ASS_BUF = [] # 保存ASS特效
- TCAS_BUF = [] # 保存TCAS特效
- ##### 主要特效编写操作 ####
- dx = _x - int((_a + _Spacing) / 2 + 0.5) # 一个固定操作, 将an5的坐标转换为an7
- dy = _y - int(_Fs / 2 + 0.5) # ASS特效默认采用an5坐标, TCAS特效则采用an7坐标
- points = gfGetPoints(GdiFont, _txt)
- pt_num = len(points) #把像素字转换成点
- dx = _x - int((_a + _Spacing) / 2 + 0.5) #同上同于转换
- dy = _y - int(_Fs / 2 + 0.5)
- inix = dx - randint(15, 30) #X轴定义一个随机的初始值
- tab_posx = (inix + randint(-40, 40), inix + randint(-130, 130), inix + randint(-130, 130), inix + randint
- (-40, 40)) #X轴的随机移动数组?
- tab_posy = (dy + _Fs + randint(-15, 20), _y + randint(-100, 100), _y + randint(-110, 110), dy +
- randint(-15, 20)) #Y轴的随机移动数组?
- maxi = int(tab_posy[0] - tab_posy[3]) + 90 #获取Y轴的移动坐标?可是中间的那个 - 是做什么的?
- +90是整个Y坐标移动90? 这行代码偶不知道。。这行不解决下面的好像也难明白呢(T.T)
- pos_cur = Bezier3(maxi, tab_posx[0] + randint(-15, 15), tab_posy[0], tab_posx[3] + randint(-15, 15),
- tab_posy[3], tab_posx[1] + randint(-20, 20), tab_posy[1], tab_posx[2] + randint(-20, 20), tab_posy[2])
- #呜咕。。 tab_posx[0]是对应的inix + randint(-40, 40)这个坐标吗。 tab_posy[0]是对应的dy + _Fs +
- randint(-15, 20)这个坐标吗。。然后依次类推? 结构就是曲线的:开始点,结束点,控制点1,控制点2 这样
- ?
- bucle = max(pt_num, maxi) #将像素点,和那个偶不明白的代码给max。。然后再给bucle
- for part in range(bucle): #循环bucle给part?。。这里的循环偶不太明白bucle里的东西如何循环的?。
- 。偶只知道时间的循环和次数的循环。。这个没见过。。这次想了解一下
- indice_text = randint(0, pt_num - 1) #这里是随机取像素点? 为什么要减去1
- indice_pos = randint(0, maxi - 1) #获取随机的位置?
- x = dx + points[indice_text][0] #像素点开始的X轴的位置 后面的[0]是什么意思?
- y = dy + points[indice_text][1] #像素点开始的Y轴的位置
- x_fin = pos_cur[indice_pos][0] #像素点结束的X轴的位置
- y_fin = pos_cur[indice_pos][1] #像素点结束的Y轴的位置
- rand_ini = randint(50, 400) #随机去一个值 rand_ini 是什么?
- ts = _end - 30 + _j * 2.5 #字幕结束的时间-30+第j个字乘以2.5 _j * 2.5这定义的是
- 什么意思?。。。偶看大大们会用到比如:_A,_J之类的来定义时间是做什么的呀?
- te = ts + 65 + _j * 2.5 #同上就是不知道_j在这里的作用
- rand_end = 10 * (te - ts) #rand_end也不知道。te-ts不就是整个特效存在的时间。。
- 难道是像素点的时间?
- EFT = move(x, y, x_fin, y_fin, rand_ini, rand_end) + fad(70, 0) + color1('0337C1') + fsc(125, 125)
- + shad(0) + bord(0) + alpha(255 - points[indice_text][2]) + t(alpha(255) + fsc(50, 50)) #points
- [indice_text][2]这个偶不明白
- ass_main(ASS_BUF, SubL(ts, te, 0, Pix_Style), EFT, PixPt())
- ##### 将结果返回给tcax进行处理 #####
- return (ASS_BUF, TCAS_BUF)
复制代码 呜咕。。一个一个的问这样实在没效率。。所以偶试着自己翻译代码。。。感觉错误好多。。请M大大帮偶检查一下。。。真心请教 |
|