马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
本帖最后由 Maz马 于 2026-5-18 01:23 编辑
最开始是和 全随机游戏核心 写在一起的
但为了解耦,让单个组件更加模块化一点,使用、学习起来更轻松一点
所以把混杂的东西单独切出来
[RenPy] 纯文本查看 复制代码 # 多数据管理技巧:
init python:
# 批量注册角色
def Auto_set_char(start=1, end=100, prefix="角色"):
for i in range(start, end + 1):
name = f"{prefix}{i}"
store._data_char[name] = Character(name)
return
# 自定义列表批量注册
def List_set_char(names_list):
for name in names_list:
store._data_char[name] = Character(name)
return
default _data_char = {} # 存储角色数据的注册表单
default _current_char = None # 临时读取角色数据的容器
default _cc = Character("_current_char.name",dynamic=True) # 动态读取容器的实际数据
# 多角色示例
label DATA_test:
# 实际数据存储在注册表,用调取数据的方式,使用原生角色作为UI接口
$ _data_char["角色1"] = Character("角色1")
$ _data_char["角色2"] = Character("角色2")
$ _data_char["角色3"] = Character("角色3")
$ _data_char["角色4"] = Character("角色4")
# 管理数据只需要管理注册表,不需要每次都新建变量或查找变量,只需要重复查表与提取
$ _current_char = _data_char["角色1"]
_cc "我是角色[_current_char.name]"
_cc "我是角色[_cc]"
# 在对话,脚本编写时,也不需要使用多个变量,而是动态计算,甚至也便捷了多语言TL文件的修改
$ _current_char = _data_char["角色4"]
_cc "我是角色[_current_char.name]"
_cc "我是角色[_cc]"
# 可以使用一组函数来对注册表封装,和自动处理
$ Auto_set_char(start=1, end=100, prefix="路人角色")
$ _current_char = _data_char["路人角色100"]
_cc "我是角色[_current_char.name]"
# 也可以通过函数 使用数据、表格、json等方式批量录入
$ List_set_char(["勇者", "法师", "刺客"])
$ _current_char = _data_char["刺客"]
_cc "我是角色[_current_char.name]"
return
#点击头像 查看我写的更多屎
粉身碎骨浑不怕,要留答辩在人间
|