- UID
- 2
- 积分
- 8682
- 帖子
- 2905
- 主题
- 199
- 论坛币
- 11230
- 威望
- 16
- EP值
- 2348
- MP值
- 15
- 阅读权限
- 200
- 注册时间
- 2011-8-3
- 在线时间
- 2597 小时
- 最后登录
- 2024-2-26
|
执行此例子可能需要新模块
gdiFont.rar
(6.37 KB, 下载次数: 4491)
解压后放到TCAX根目录下, 或者是当前特效工程目录下.
完整特效工程
bezier_pixels.rar
(93.58 KB, 下载次数: 4627)
- 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)
- tab_posx = (inix + randint(-40, 40), inix + randint(-130, 130), inix + randint(-130, 130), inix + randint(-40, 40))
- tab_posy = (dy + _Fs + randint(-15, 20), _y + randint(-100, 100), _y + randint(-110, 110), dy + randint(-15, 20))
- maxi = int(tab_posy[0] - tab_posy[3]) + 90
- 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])
- bucle = max(pt_num, maxi)
- for part in range(bucle):
- indice_text = randint(0, pt_num - 1)
- indice_pos = randint(0, maxi - 1)
- x = dx + points[indice_text][0]
- y = dy + points[indice_text][1]
- x_fin = pos_cur[indice_pos][0]
- y_fin = pos_cur[indice_pos][1]
- rand_ini = randint(50, 400)
- ts = _end - 30 + _j * 2.5
- te = ts + 65 + _j * 2.5
- rand_end = 10 * (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))
- ass_main(ASS_BUF, SubL(ts, te, 0, Pix_Style), EFT, PixPt())
- ##### 将结果返回给tcax进行处理 #####
- return (ASS_BUF, TCAS_BUF)
复制代码 |
|