马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
本帖最后由 歳一 于 2023-2-17 20:31 编辑
00 突然发现了第三种定义方式 论坛里没有关于原文档的内容吗,那我来更新一点吧,不过这代码粘贴的也太丑了吧,是关于screen.rpy的:
需要看结论的直接翻到最下面
首先进入screen.rpy,我们就能看到第一个这样定义的样式,对于gui.text_properties(kind=None, accent=False)的作用就不赘述了 (它定义了一个字典)
[RenPy] 纯文本查看 复制代码 style default:
properties gui.text_properties()
language gui.language
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 现有如下定义,拿其中的size 属性举个例子,两者区别是size 大小,前者是100,后者是200,原字体要小很多。
[RenPy] 纯文本查看 复制代码 # 第一种
###########################################################
## 定义了test字典中size的属性
define gui.test_text_size = gui.preference("test_text", 100)
## 定义了test字典
style test:
properties gui.text_properties("test", accent = True)
# 第二种
###########################################################
##
style test_text:
size 200
font gui.interface_text_font
###########################################################
########################################################### 1)在屏幕上显示这两种字体。 [RenPy] 纯文本查看 复制代码 text "test_text" style "test_text"
text "test" style "test"
显然是不一样的,两者都可以通过后缀style来调用;
2)第二种可行的方法,但第一种不能用style_prefix(这涉及到继承父类,以后看情况说明)。 [RenPy] 纯文本查看 复制代码 style_prefix "test"
text "test_text"
text "test_text"
text "test" style "test"
两者都有效:优先级更高的是加后缀的方法,而第二种可以全局声明。 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 到这里,是不是觉得第二种用法更多?其实忽略了一个问题, 第一种定义了一个字典,这意味着可以随时更改其值: [RenPy] 纯文本查看 复制代码 define gui.test_text_size = gui.preference("test_text", 100)
第一种随时都可以更改属性值,第二种不行 当然,容易想到可以对第二种声明一个变量,通过修改变量来更改,但其实并不可行(我没试出简单的方法); 退一步,即使实现了该变量声明,可是对于大量的style和属性,如果都通过变量声明那就太繁琐了。
第三种:
没错存不存在完美的解决方案,即是字典,又可以通过style_prefix来声明?
[RenPy] 纯文本查看 复制代码 ## 第三种
##########################################################
## 定义了test_text字典中size的属性
define gui.test_text_text_size = gui.preference("test_text_text", 200)
style test_text:
properties gui.text_properties("test_text", accent = True)
这样就有点奇怪了,因为名称问题,其对应的属性为gui.test_text_text_properties,没错两个text,
那这样声明renpy不会报错吗?答案是不会:
[RenPy] 纯文本查看 复制代码
style_prefix "test" #第三种
text "test_text"
text "test_text"
text "test" style "test" #第一种
前面两行为第三种的大小(已经将第二种注释掉了,没有重叠),只不过这样命名的方法很奇怪
但是确实实现了两个的结合
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 结论: 第一种:不能通过全局声明来实现大量文本应用,但是便于作者与用户修改属性值; 第二种:可以全局声明,但是不能方便修改属性值; 第三种:结合前两种的优势,但是其声明变得奇怪
建议: 当出现多行需要声明时,推荐使用第二种; 当出现需要经常更改其属性值的,推荐第一种声明(可以发现,源文件已经把便于修改的放在了gui.rpy中)。 第三种固然完美,但是因为它偏奇怪的声明,以及为什么renpy能够继续识别出这种方法还有待研究 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
有疑问或问题请指出, 觉得可以继续更新的评论区扣01
00
|