找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 93|回复: 3

Shader 直线长方形圆形组件

[复制链接]
发表于 4 天前 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×


实际上是好几个组件的集合扔到同一个帖子里转发 ( )

PixPin_2025-06-02_17-42-19.png

B站视频:
画线长方形圆形:  
UV 映射:  
点云图:  

项目地址: https://github.com/Koji-Huang/KojiRenpyBox

这里只是转发链接而已, 因为项目的大小实在是不适合写一个帖子来说明了 ( 再说我都做好视频了嘛!

欢迎来看!

评分

参与人数 1活力 +300 干货 +3 收起 理由
被诅咒的章鱼 + 300 + 3 我不信楼主是高中生!

查看全部评分

发表于 10 小时前 | 显示全部楼层
太强了
回复

使用道具 举报

发表于 6 小时前 | 显示全部楼层
尝试了楼主的直线矩形圆形组件,个人感受:不好用……


先撇开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种组件结合。
回复 支持 抱歉

使用道具 举报

 楼主| 发表于 2 分钟前 | 显示全部楼层
被诅咒的章鱼 发表于 2025-6-6 15:57
尝试了楼主的直线矩形圆形组件,个人感受:不好用……

是这样的, 参数是固定在 cdd 内而不是从 style 里读取所以无法响应 Transform, 如果希望这些参数相应 transform 的话修改参数的读取调用接口就好了, 这样就可以兼容 ATL

至于我为什么一开始不这么写... 这个组件发出来的时候我已经要赶去学校了...这周我找时间改一下吧
回复 支持 抱歉

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|RenPy中文空间 ( 苏ICP备17067825号|苏公网安备 32092302000068号 )

GMT+8, 2025-6-6 22:45 , Processed in 0.079225 second(s), 29 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表