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