程序內購 link
Ren’Py中包含一個高級的程序內購框架。這個框架目前只支持解鎖型內購項目,支持的應用市場包括蘋果的AppStore、Google Play和亞馬遜AppStore。
使用這個框架相當簡單,只需要按照下列步驟使用幾個函數
在遊戲的初始化階段,使用
iap.register()
函數註冊內購項目。遊戲啟動後,使用
iap.has_purchased()
函數檢查是否有購買過的內購項目。使用
iap.purchase()
函數或iap.Purchase()
行為(action)允許用戶購買某個道具。使用
iap.restore()
函數或iap.Restore()
行為(action)允許用戶同步在其他設備上購買的內容。
提供的程序內購項目,購買內容(包括價格等)必須在對應的應用市場上進行設置。
IAP函數 link
- iap.get_price(product) link
返回一個字串,表示用戶本地貨幣的 product 價格。如果價格未知則返回None——這也表示 product 不能購買。
- iap.get_store_name() link
返回程序內購啟用的商店名稱。目前返回的結果可能是下列情況之一:“amazon”表示亞馬遜AppStore,“play”表示Google Play,“ios”表示蘋果AppStore,None表示沒有可用的商店。
- iap.has_purchased(product) link
如果用戶已經買過 product 就返回True,否則返回False。
- iap.init() link
初始化iap。應該在完成所有
iap.register()
的調用後,其他iap函數的調用之前,調用該函數。 如果沒有顯式調用,則會在初始化階段的結尾自動調用。
- iap.is_deferred(product) link
當用戶需要購買 product 時返回True。不過這個請求必須被第三方認證,比如家長或監護人。
- iap.purchase(product, interact=True) link
這個函數請求購買 product 。
如果購買成功就返回True,如果購買失敗就返回False。如果 product 註冊為消耗品,在調用返回前內購產品就會被使用。
- iap.register(product, identifier=None, amazon=None, google=None, ios=None, consumable=False) link
使用程序內購系統註冊一個商品。
- product
一個字串,表示商品的高級(high-level)名稱。這個字串也會傳入
iap.purchase()
、iap.Purchase()
和iap.has_purchased()
函數,表示對應的商品。- identifier
一個字串,用於商品的內部標識。一旦用於表示某個商品,就不能再修改。這些字串的格式類似於“com.domain.game.product”。
如果為None,預設值為 product。
- amazon
一個字串,表示亞馬遜AppStore的商品標識號。如果沒有給定,預設值為 identifier。
一個字串,表示Google Play商店的商品標識號。如果沒有給定,預設值為 identifier。
- ios
一個字串,表示蘋果iOS版AppStore的商品標識號。如果沒有給定,預設值為 identifier。
- consumable
如果是消耗品內購則返回True。到目前為止,只有iOS平台支持消耗品內購。
- iap.request_review() link
調用該函數後,應用商店會讓用戶給該應用評分。 如果評分請求成功返回True,否則返回False。 注意,評分請求成功不等於用戶給app評分。app商店會決定最終結果。
目前只支持Google Play和蘋果App Store。
- iap.restore(interact=True) link
連接應用商店,並恢復(restore)所有遺失的內購。
- interact
若為True,調用renpy.pause等待應用商店的響應。
IAP 行為 link
- iap.Purchase(product, success=None) link
這個行為嘗試購買 product。僅當 product 是可購買狀態時(啟用了應用商店並且沒有購買過這個產品),這個行為才是可用的。
- success
若非None,這是一個行為或者行為列表,當內購成功後執行這些行為。
- iap.Restore() link
一個行為,連接應用商店並恢復(restore)所有遺失的內購。