尝试了楼主的直线矩形圆形组件,个人感受:不好用……
先撇开shader部分的代码效率问题不谈,关键问题在于CDD的实现方式与Ren'Py的界面语言和ATL兼容性差。
举个例子,使用楼主的 DrawCircle 类,定义一个可视组件:
[RenPy] 纯文本查看 复制代码 image test_circle = DrawCircle()
由于构造时未指定 pos 参数的值,默认值为 (0,0) 。如果直接使用
[RenPy] 纯文本查看 复制代码 show test_circle
会发现画面左上角会显示1/4个圆。
如果我想让这个圆显示在画面正中,只能在构造时指定pos:
[RenPy] 纯文本查看 复制代码 image test_circle = DrawCircle(pos=(960,540))
如果不在构造时就指定pos,单纯图省事想加个transform,比如truecenter:
[RenPy] 纯文本查看 复制代码 show test_circle at truecenter
虽然不会报错,但也不会有什么效果。
此外,所有的transform都不能对shader绘制的3种组件产生效果。界面局部组件也无法这3种组件结合。
|