成就 link
成就(Achievement)模块允许开发者让用户解锁成就,清除成就,以及判断某个成就是否已经解锁。也允许根据根据进度获得成就。
默认情况下,成就在持久化文件中存储信息。如果Steam平台支持可用并且被启用,成就信息会自动与Steam同步。
- achievement.Sync() link
调用achievement.sync()函数的行为。只有当成就未同步的情况下才可用。
- achievement.clear(name) link
清除名为 name 的成就。
- achievement.clear_all() link
清除所有成就。
- achievement.get_progress(name) link
根据成就名返回成就完成进度。如果没有任何注册进度或成就未知时,将返回0。
- achievement.grant(name) link
解锁名为 name 的成就,前提是该成就尚未解锁。
- achievement.has(name) link
如果用户已经解锁成就 name 就返回True。
- achievement.progress(name, complete) link
报告成就 name 的完成进度,前提是该成就未解锁。成就 name 必须先定义各完成度。
- name
成就名,而不是成就的stat。
- complete
一个整数,给定了达成成就的单元数量。
- achievement.register(name, **kwargs) link
注册一个成就。成就并不强制需要注册,但这样做可以将成就信息传给后端。
- name
注册的成就名。
下列关键词参数是可选的。
- steam
在Steam上使用的成就名。如果没有指定,默认与 name 相同。
- stat_max
解锁成就的stat整数值。
- stat_modulo
如果使用 stat_max 对进度取模结果为0,就向用户显示进度。例如,如果stat_modula是10,当进度为10、20、30时分别会想用户显示进度信息。如果未给出该值,默认为0。
- achievement.sync() link
同步本地存储和其他后端(例如,Steam)的注册成就。
控制成就的配置项包括:
- achievement.steam_position = None link
若值不是None,该配置项设置steam弹出通知的位置。该值必须是一个字符串,可使用的内容包括“top left”,“top right”,“bottom left”和“bottom right”。
- define config.steam_appid = None link
若非None,该项应是Steam appid。Ren’Py会在启动时自动设置此appid。需要使用define语句设置该项。
define config.steam_appid = 12345
Steamworks API link
当Steam可用时,基于ctypes库的Steamworks API绑定也将可用,并暴露为 achievement.steamapi 。 这些绑定是steamapi模块的一个实例,将C++版本的Steamworks API通过机器转换为Python版本,具体内容可以看 这里。