/tetris-multiplayer

多人俄罗斯方块,支持四个人同时在线

Primary LanguageJavaScriptOtherNOASSERTION

多人俄罗斯方块游戏

这是一个基于 Node.jsExpressSocket.ioCanvas API 的多人俄罗斯方块游戏。玩家可以实时参与游戏,选择自己的游戏界面,同时支持聊天室功能,方便玩家之间的交流。

功能特性

  • 多人实时游戏:支持多名玩家同时在线游戏,每个玩家可以选择自己的游戏界面。
  • 游戏状态同步:玩家的游戏状态(如方块位置、得分等)会实时同步,其他玩家可以观看到你的游戏进程。
  • 聊天室功能:内置聊天室,玩家可以在游戏中实时聊天交流。
  • 计时功能:记录玩家的游戏时长和选择界面的时长,实时更新显示。
  • 持久化数据存储:使用文件系统存储部分数据和会话信息,如无必要请不要关闭或重启服务器,否则会导致游戏数据(方块的状态和分数)丢失。

目录结构

tetris-multiplayer/
├── public/
│   ├── client.js        // 客户端 JavaScript 文件
│   ├── style.css        // 样式表
│   └── index.html       // 前端页面
├── sessions/            // 会话数据存储目录
├── data.json            // 持久化数据文件
├── chat_history.txt     // 聊天记录文件
├── server.js            // 服务器主文件
├── package.json         // 项目配置文件
└── README.md            // 项目文档(本文件)

环境要求

  • 操作系统:Windows、macOS 或 Linux
  • Node.js:版本 >= 12.x
  • npm:版本 >= 6.x

安装与运行

1. 克隆项目代码

git clone https://github.com/Admin-jwzz/tetris-multiplayer.git

或者直接下载项目的 ZIP 压缩包并解压。

2. 进入项目目录

cd tetris-multiplayer

3. 安装依赖项

npm install

4. 运行项目

开发模式

使用 nodemon 运行服务器,以便在文件更改时自动重启:

npm run dev

生产模式

直接运行服务器:

npm start

5. 访问应用

在浏览器中访问:

http://localhost

如果更改了端口号,例如改为 3000,则访问:

http://localhost:3000

使用指南

设置昵称

  • 访问应用后,会提示输入昵称。
  • 输入昵称后,点击 确定 按钮。
  • 昵称需要唯一,且不区分大小写。

选择游戏界面

  • 设置昵称后,可以看到四个游戏界面。
  • 点击 选择界面 按钮,选择一个未被占用的界面。
  • 选择后,可以点击 开始游戏

游戏控制

  • 开始游戏:点击 开始游戏 按钮开始新游戏。
  • 暂停/继续游戏:点击 暂停游戏 按钮暂停或继续游戏。
  • 重新开始游戏:游戏结束后,点击 重新开始 按钮开始新一轮游戏。

操作方块

  • 左箭头:向左移动方块。
  • 右箭头:向右移动方块。
  • 下箭头:加速方块下落。
  • 上箭头:旋转方块。

聊天室

  • 聊天室默认在左下角,可以拖动位置或最小化。
  • 输入消息后按 Enter 键发送。
  • 支持以下系统命令:
    • /logout:注销当前用户。
    • /clear:清除聊天记录(仅管理员,用户名为admin就是管理员)。
    • /rename 新昵称:更改昵称。

部署到服务器(可选)

1. 部署环境

  • 服务器:一台可用的云服务器或本地服务器。
  • Node.js:确保服务器上已安装 Node.js 和 npm。
  • 端口配置:开放服务器的 HTTP 端口(如 803000)。

2. 上传项目代码

将项目代码上传到服务器,确保目录结构完整。

3. 安装依赖项

在服务器上,进入项目目录,运行:

npm install

4. 运行项目

在服务器上运行:

npm start

5. 配置反向代理和 SSL(可选)

  • 使用 Nginx 或 Apache 配置反向代理。
  • 配置 SSL 证书,开启 HTTPS。

常见问题

1. 无法启动服务器

错误信息:端口已被占用。

解决方案:检查是否有其他应用占用了指定端口,或者更改 server.js 中的端口号。

2. 无法连接到服务器

错误信息:在浏览器中无法访问应用。

解决方案:检查服务器是否正在运行,防火墙和端口配置是否正确。

3. 聊天室无法使用

可能原因:未设置昵称、Socket.io 连接失败。

解决方案:确保已设置昵称,检查浏览器控制台的错误信息。

许可证

本项目采用 CC BY-NC 4.0

版权所有 © 2024 Admin-jwzz


感谢您使用本项目,祝游戏愉快!