一款基于 WebGL 的俯视角打僵尸生存游戏。你需要在尸潮中尽可能活得更久,并把成绩提交到服务器排行榜。
- 浏览器直接运行,无需安装客户端
- WASD 移动 + 鼠标瞄准射击
- 多波次敌人、连杀反馈和音效系统
- 服务器统一保存排行榜,避免本地数据丢失
- 支持 Docker 部署
| 按键 | 功能 |
|---|---|
| WASD | 移动 |
| 鼠标 | 瞄准 |
| 左键 | 射击 |
| R | 换弹 |
| ESC | 暂停 |
npm install
npm run dev构建生产文件并启动本地服务:
npm run build
python3 server.py默认地址:
- 游戏:
http://127.0.0.1:8000/ - 排行榜接口:
http://127.0.0.1:8000/api/rankings - 健康检查:
http://127.0.0.1:8000/healthz
镜像内会运行 server.py,并默认将排行榜读写到 /data/rankings.json。
适合直接上线,下面的命令已经包含数据分离挂载:
mkdir -p /srv/mowing-data
docker pull superneed/mowing:latest
docker run -d \
--name mowing \
-p 8000:8000 \
-v /srv/mowing-data:/data \
--restart unless-stopped \
superneed/mowing:latest排行榜数据会保存在宿主机:
/srv/mowing-data/rankings.json
适合你自己修改了代码后再部署:
docker build -t mowing:latest .
docker run -d \
--name mowing \
-p 8000:8000 \
-v $(pwd)/mowing-data:/data \
--restart unless-stopped \
mowing:latestcurl http://127.0.0.1:8000/healthz
curl http://127.0.0.1:8000/api/rankings- 如果使用 Nginx 或宝塔,请把站点根目录指向
dist/ - 将
/api/和/healthz反向代理到127.0.0.1:8000 - 示例配置见
deploy/nginx-final-mowing.conf
.
├── src/ # 前端源码
├── public/ # 静态资源
├── dist/ # 构建产物
├── server.py # 排行榜接口与静态文件服务
├── rankings.json # 默认排行榜数据
├── deploy/ # 部署示例配置
├── Dockerfile
└── README.en.md
MIT


