Python中如何使用浏览器游玩中文DOS游戏
🎮 中文 DOS 游戏 浏览器游玩中文 DOS 游戏 在线试玩: https://dos.zczc.cz 项目地址: https://github.com/rwv/chinese-dos-games
支持游戏:
游戏列表 仙剑奇侠传 模拟城市 2000 美少女梦工厂 同级生 2 大富翁 3 明星志愿 1 三国志 IV 金庸群侠传 轩辕剑 1 轩辕剑 2 皇帝 轩辕剑外传:枫之舞 疯狂医院 大航海时代 大航海时代 2 银河英雄传说 III SP 三国志 II 三国志 III 三国志 V 三国志 V 威力加强版 三国志英杰传 主题医院 三国演义 三界谕:邦沛之迷 殖民计划 炎龙骑士团 II ‧黄金城之谜 倚天屠龙记 信长之野望·天翔记 信长之野望·霸王传 金瓶梅之偷情宝鉴
Python中如何使用浏览器游玩中文DOS游戏
远程运行?
要玩中文DOS游戏,我推荐用pygame配合dosbox-python库。先安装依赖:
pip install pygame dosbox-python
然后写个启动脚本:
import os
import subprocess
import sys
def run_dos_game(game_path, game_exe):
"""启动DOS游戏"""
# 构建DOSBox命令
dosbox_cmd = [
'dosbox',
'-c', f'mount c {game_path}',
'-c', 'c:',
'-c', f'{game_exe}',
'-c', 'exit'
]
try:
# 执行DOSBox命令
subprocess.run(dosbox_cmd, check=True)
except FileNotFoundError:
print("错误:未找到DOSBox,请先安装DOSBox")
print("下载地址:https://www.dosbox.com/")
except subprocess.CalledProcessError as e:
print(f"游戏启动失败:{e}")
def main():
# 配置游戏路径和可执行文件
game_dir = r"C:\Games\ChineseDOSGame" # 修改为你的游戏目录
game_exe = "GAME.EXE" # 修改为游戏的可执行文件名
if not os.path.exists(game_dir):
print(f"错误:游戏目录不存在 {game_dir}")
return
print(f"正在启动游戏: {game_exe}")
run_dos_game(game_dir, game_exe)
if __name__ == "__main__":
main()
对于浏览器运行,可以用Emscripten把DOSBox编译成WebAssembly:
# 安装Emscripten后,编译DOSBox到Web
# 这是一个简化的构建脚本示例
import subprocess
def build_dosbox_wasm():
"""编译DOSBox到WebAssembly"""
emcc_cmd = [
'emcc',
'-o', 'dosbox.html',
'dosbox_main.c',
'-s', 'USE_SDL=2',
'-s', 'ASYNCIFY',
'--preload-file', 'game_data@/'
]
subprocess.run(emcc_cmd, check=True)
print("编译完成,生成dosbox.html")
# 注意:这需要先安装Emscripten SDK
实际在浏览器玩的话,更简单的方法是直接用现成的方案:
- 用
http.server开个本地服务器 - 把游戏文件放在静态目录
- 用
js-dos前端库加载游戏
# 简单的HTTP服务器
import http.server
import socketserver
def start_server(port=8000):
"""启动本地HTTP服务器"""
handler = http.server.SimpleHTTPRequestHandler
with socketserver.TCPServer(("", port), handler) as httpd:
print(f"服务器启动在 http://localhost:{port}")
print("把游戏文件放在当前目录,然后访问index.html")
httpd.serve_forever()
if __name__ == "__main__":
start_server()
然后在同目录创建index.html,引入js-dos:
<!DOCTYPE html>
<html>
<head>
<script src="https://js-dos.com/6.22/current/js-dos.js"></script>
</head>
<body>
<div id="jsdos"></div>
<script>
Dos(document.getElementById("jsdos"), {
wdosboxUrl: "https://js-dos.com/6.22/current/wdosbox.js",
cycles: 1000,
autolock: true,
}).ready((fs, main) => {
fs.extract("GAME.ZIP").then(() => {
main(["-c", "GAME.EXE"]);
});
});
</script>
</body>
</html>
把游戏打包成ZIP放在服务器目录,浏览器打开就能玩。
总结:本地用pygame+dosbox,浏览器用js-dos。
能存档吗?
就是 emdosbox 嘛。话说,为啥没人把 Dosbox-X 移植到 emscripten 下面啊。。。浏览器里的东方旧作才萌
挺好玩的,不知道原理是什么,不知道能不能部署到自己服务器上,因为速度有点喜感。。。。可以存档,但我没试过。。不过好像玩仙剑啊,但是没有修改器,估计没耐心打下去。。。。
金庸群侠传 居然是注音输入法,名字都没法输入 晕了
鼠标有点漂, 操作不舒服, 会吃到小屏幕里, 老板过来不好切换.
昨天想自己编译一个本地运行,失败了。谁传一个二进制包?
厉害。。。。。上班时可以随时摸鱼了
鼠标太漂了
我靠。我要在打串 金庸群侠传
楼主的网站 seo 做的挺好的
看 V2EX 很久,今天觉得有必要冒个泡支持一下这个帖子,注册了一个账号。前几天各种把游戏打包成 webassembly 的新闻,我就在等着仙剑,终于有了。
这么棒!不过刚试了一下没声音,是我自己的问题么?
自己也 demo 了一个出来。
https://yksoft1.github.io/


