成就 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版本,具體內容可以看 這裡。