我正在玩一款名为"Doki Doki文学俱乐部“的游戏文件,该游戏是用renpy制作的,是用python编写的视觉小说引擎。有些台词让我好奇:
$ persistent.playthrough = 1
$ persistent.anticheat = renpy.random.randint(100000, 999999)
$ renpy.save_persistent()
$ delete_character("sayori")
$ in_sayori_kill = True "$“是用来干什么的?
发布于 2020-09-12 15:43:07
这是一个特定于RenPy的构造,不是python编程语言的直接一部分。RenPy在其python语句指南中提到了它。
一个常见的情况是在默认存储中运行一行Python。例如,Python一行可以用于初始化或更新标志。为了使编写Python一行程序更方便,有一行Python语句。 单行Python语句以美元符号
$字符开头,并包含该行上的其他所有内容。下面是Python一行程序的一些示例: $标志= True #初始化一个变量。$ romance_points =0#增加一个变量。$ romance_points += 1#调用一个函数,该函数公开了Ren的‘Py功能。$ renpy.movie_cutscene("opening.ogv") Python一行程序总是在默认存储区中运行。
请注意,您的RenPy程序/视觉小说不是用python编写的;它们是用RenPy自己的脚本语言编写的,在几个方面类似于python,但也有明显的不同。如果您想调用纯python,就必须按照RenPy的脚本语言所允许的方式进行调用。
发布于 2020-10-01 17:21:19
RenPy引擎本身是用python编写的,但是它可以解释几种语言。
首先,它是纯python (目前是python 2)。它存储在.py文件中,不支持回滚(默认情况下),并使您有机会创建作为基本函数和类的高级依赖于引擎的代码,如自定义显示。并非所有的RenPy项目都使用纯python,因为它需要一些编程技巧来编写和集成它。
第二部分是renpy专用语言。它通常被引用,就像在语言上一样,但这是不正确的:在renpy中,游戏逻辑的不同字段应该用不同的语言编写,它们之间的共同之处是它们都存储在.rpy文件中,其中一些可以运行或使用另一个文件。没有特定于renpy的代码就不可能有renpy游戏。
有:
但是,脚本语言和屏幕语言支持纯python部分的插入。插入python代码的主要方法有两种:
label my_label:
python:
print('hello there')
print('general kenobi')label my_label:
$ print('stonks')惟一的区别是oneliner只支持一个python命令(一行,呵呵),python块支持任意数量的python代码。
所以,上面的代码只是很多python oneliners,可能是在某个脚本中。
https://stackoverflow.com/questions/63862017
复制相似问题