RenPy中文空间

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 82|回复: 1

[教程] 防止游戲多開的一個簡明方案

[复制链接]
发表于 2018-10-21 22:09:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
或許你在調試的時候已經發現了Ren'Py編寫的游戲是可以同時運行多個的,甚至連Ren'Py引擎自身也是可以并發多個來運行的,效果如圖。

能夠多開的Ren'Py介面

能夠多開的Ren'Py介面

當然這在一般情況之下不會有什麽大問題,但是較爲專業的使用者就會瞭解到這樣很容易誘發檔案重寫入甚至是綫程爭用問題,例如兩個視窗同時選擇保存到同一個檔案位置,或者阻塞同一個綫程資源,這樣不僅會降低游戲體驗更爲嚴重的是會造成游戲不夠問題甚至發生游戲自身檔案損壞情況。

不過遺憾的是目前爲止Ren'Py官方并未提供有關的屬性變量或者是可以直接叫用的方法來防止這一情況。不過值得高興的是Python可以實現這一點,而且相對較爲輕鬆。此方法需要一個外部引用檔案(當然也可以内嵌):singleton.py,裏面包含了若干類和字段,具體内容可自行參看内容,而且本人也添加了許多注釋以使對Python沒有深入瞭解的人來閲讀。可以看出此方案是通過建立一個臨時檔案來判斷游戲的運行狀態的。實現方式有些類似C#的互斥,只不過不是基於綫程的而是基於檔案的而已。

singleton.zip (2.39 KB, 下载次数: 2)
chrome_2018-10-21_20-52-35.jpg

评分

参与人数 2干货 +5 收起 理由
龙氏 + 2 版区有你更精彩(*^_^*)
BuErShen + 3 感谢分享!

查看全部评分

发表于 2018-10-22 07:39:24 | 显示全部楼层
有意思,黑科技啊
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|RenPy中文空间 ( 苏ICP备17067825号 | 苏公网安备 32092302000068号 )

GMT+8, 2018-11-20 02:05 , Processed in 0.052530 second(s), 36 queries , File On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表