Skip to content

moli-xia/mowing

Repository files navigation

绝地收割 (Final Mowing)

English README

一款基于 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

Docker 部署

镜像内会运行 server.py,并默认将排行榜读写到 /data/rankings.json

方法 1:直接拉取 Docker Hub 镜像

适合直接上线,下面的命令已经包含数据分离挂载:

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

方法 2:本地构建镜像

适合你自己修改了代码后再部署:

docker build -t mowing:latest .
docker run -d \
  --name mowing \
  -p 8000:8000 \
  -v $(pwd)/mowing-data:/data \
  --restart unless-stopped \
  mowing:latest

部署后检查

curl 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

License

MIT

About

绝地收割——一个丧尸围城类3D射击小游戏

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors