RenPy中文空间

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 68|回复: 0

集成文本编辑器(新)

 关闭 [复制链接]
发表于 2018-5-6 18:33:01 | 显示全部楼层 |阅读模式

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

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

x
集成文本编辑器(翻译:被诅咒的章鱼)

Ren’Py允许用户从启动器(launcher)加载一个文本编辑器编辑游戏脚本,同时也使用这个文本编辑器向用户汇报错误。 默认情况下,Ren’Py从启动器和系统默认编辑器等路径启动时,都会使用jEdit作为文本编辑器。(译者注:当前版本默认编辑器为Editra) 必要的话用户可以定制自己的文本编辑器。

通过在 .edit.py文件中创建一个 Editor类,就可以定制编辑器了。这个类包含了管理文本编辑的方法。

直接运行时,Ren’Py首先根据环境变量 RENPY_EDIT_PY 找到使用的 .edit.py 文件。 如果成功找到 .edit.py文件,Ren’Py就使用文件中定义的Editor类。如果没有找到那个文件,Ren’Py会使用一个内建的 editor类,以系统指定方式启动编辑器。

当Ren’Py的启动器运行时,它会扫描项目目录的子目录和 Ren’Py目录以寻找格式为 name.edit.py 的文件。 (例如,它会找到launcher/jEdit.edit.py和myeditor/MyEditor.edit.py。)带有给定 name 的最后一个编辑器,会作为启动器的一部分展现给创作者。 启动器也设置环境变量RENPY_EDIT_PY来选择文件,这样使用启动器启动的游戏也会使用选用的编辑器。

编写 .edit.py文件
.edit.py文件是一个Python(而不是Ren’Py)文件,文件中必须定义唯一的类,名为 Editor。Ren’Py调用这个类的方法实现对文本的编辑。

编辑器事务(transaction)将相关操作分组,编辑器通过事务(transaction)进行编辑。例如,如果某个编辑器事务申请一个新窗口,那个事务中的所有文件都应该在同一个新窗口中打开。编辑器事务通过调用 begin方法启动,可以包含一个或多个对operation方法的调用,通过调用end方法结束。

edit.py文件应导入 renpy.editor,Editor类应继承 renpy.editor.Editor。额外的关键词入参传入类的方法时,你定义的方法应忽略那些未知参数。由于假设你需要自定义Editor类,我们就在所有方法中都添加了 self 参数。

class Editor

    begin(self, new_window=False, **kwargs)
        启动一个编辑器事务(transaction)。

        如果 new_window 为True,编辑器会尝试打开一个新窗口。否则,编辑器尝试在已存在的编辑器窗口中执行事务。

    end(self, **kwargs)
        结束一个事务。

    open(self, filename, line=None, **kwargs)
        在编辑器中打开名为 filename 的文件。

        如果 line 不是 None,尝试将编辑游标定位到第 line 行。



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

本版积分规则

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

GMT+8, 2018-10-24 11:46 , Processed in 0.025226 second(s), 20 queries , File On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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