python 或 renpy 中的 $
The $ in python or renpy
我正在玩一个名为“Doki Doki Literature Club”的游戏的游戏文件,该游戏是在 renpy
中制作的,一个用 [=19= 编写的视觉小说引擎] 。有些台词让我很好奇:
$ persistent.playthrough = 1
$ persistent.anticheat = renpy.random.randint(100000, 999999)
$ renpy.save_persistent()
$ delete_character("sayori")
$ in_sayori_kill = True
“$”有什么用?
这是一个 RenPy-specific 结构,不是 python 编程语言的直接组成部分。 RenPy mentions it in its guide to python statements:
A common case is to have a single line of Python that runs in the default store. For example, a Python one-liner can be used to initialize or update a flag. To make writing Python one-liners more convenient, there is the one-line Python statement.
The one-line Python statement begins with the dollar-sign $
character, and contains everything else on that line. Here are some example of Python one-liners:
$ flag = True
# Initialize a variable.
$ romance_points = 0
# Increment a variable.
$ romance_points += 1
# Call a function that exposes Ren'Py functionality.
$ renpy.movie_cutscene("opening.ogv")
Python one-liners always run in
the default store.
注意你的RenPyprograms/visual小说不是Python写的;它们是用 RenPy 自己的脚本语言编写的,这在很多方面类似于 python,但也有明显的不同。如果你想调用纯 python,你必须以 RenPy 的脚本语言允许的方式进行。
RenPy引擎本身用python编写,但它可以解释多种语言。
首先,它是 纯 python(python 目前为 2)。它存储在 .py 文件中,不支持回滚(默认情况下),并让您有机会创建基本功能和 类、高级 engine-dependant 代码,如自定义可视化组件。并不是所有的 RenPy 项目都使用纯 python,因为它需要一些编程技巧来编写和集成它。
第二部分是 renpy-specific 种语言。它通常被引用,如语言,但这是不正确的:renpy 中游戏逻辑的不同领域应该用不同的语言编写,它们之间的共同点是它们都存储在 .rpy 文件中,其中一些可以 运行 或使用另一个。没有renpy-specific代码就没有renpy游戏
有:
- 脚本语言
- 屏幕(UI)布局语言
- 动画和转换语言 (ATL)
但是,脚本语言和屏幕语言支持插入纯python节。插入python代码主要有两种方式:
- 通过写入python块:
label my_label:
python:
print('hello there')
print('general kenobi')
- 写一个python oneliner:
label my_label:
$ print('stonks')
唯一的区别是 oneliner 只支持一个 python 命令(一行,呵呵),而 python 块支持任意数量的 python 代码。
所以,上面的代码只是很多 python 行,可能在某些脚本中。
我正在玩一个名为“Doki Doki Literature Club”的游戏的游戏文件,该游戏是在 renpy
中制作的,一个用 [=19= 编写的视觉小说引擎] 。有些台词让我很好奇:
$ persistent.playthrough = 1
$ persistent.anticheat = renpy.random.randint(100000, 999999)
$ renpy.save_persistent()
$ delete_character("sayori")
$ in_sayori_kill = True
“$”有什么用?
这是一个 RenPy-specific 结构,不是 python 编程语言的直接组成部分。 RenPy mentions it in its guide to python statements:
A common case is to have a single line of Python that runs in the default store. For example, a Python one-liner can be used to initialize or update a flag. To make writing Python one-liners more convenient, there is the one-line Python statement.
The one-line Python statement begins with the dollar-sign
$
character, and contains everything else on that line. Here are some example of Python one-liners:$ flag = True # Initialize a variable. $ romance_points = 0 # Increment a variable. $ romance_points += 1 # Call a function that exposes Ren'Py functionality. $ renpy.movie_cutscene("opening.ogv")
Python one-liners always run in the default store.
注意你的RenPyprograms/visual小说不是Python写的;它们是用 RenPy 自己的脚本语言编写的,这在很多方面类似于 python,但也有明显的不同。如果你想调用纯 python,你必须以 RenPy 的脚本语言允许的方式进行。
RenPy引擎本身用python编写,但它可以解释多种语言。
首先,它是 纯 python(python 目前为 2)。它存储在 .py 文件中,不支持回滚(默认情况下),并让您有机会创建基本功能和 类、高级 engine-dependant 代码,如自定义可视化组件。并不是所有的 RenPy 项目都使用纯 python,因为它需要一些编程技巧来编写和集成它。
第二部分是 renpy-specific 种语言。它通常被引用,如语言,但这是不正确的:renpy 中游戏逻辑的不同领域应该用不同的语言编写,它们之间的共同点是它们都存储在 .rpy 文件中,其中一些可以 运行 或使用另一个。没有renpy-specific代码就没有renpy游戏
有:
- 脚本语言
- 屏幕(UI)布局语言
- 动画和转换语言 (ATL)
但是,脚本语言和屏幕语言支持插入纯python节。插入python代码主要有两种方式:
- 通过写入python块:
label my_label:
python:
print('hello there')
print('general kenobi')
- 写一个python oneliner:
label my_label:
$ print('stonks')
唯一的区别是 oneliner 只支持一个 python 命令(一行,呵呵),而 python 块支持任意数量的 python 代码。
所以,上面的代码只是很多 python 行,可能在某些脚本中。