Thanks to visit codestin.com
Credit goes to Github.com

Skip to content

bayuewind/ArcherWars_IO

Repository files navigation

🏹 弓箭手大作战 - 多人在线游戏

一个基于HTML5 Canvas和Socket.io的多人在线弓箭手对战游戏,类似于io游戏风格。

🎮 游戏特色

  • 多人实时对战: 最多30名玩家同时在一个房间内对战
  • 大地图探索: 2000x2000像素的大地图,带有随机生成的障碍物
  • 经验升级系统: 收集经验豆,随机三选一升级自己的弓箭
  • PvP战斗: 击杀其他玩家获得他们1/3的经验值
  • 多种升级选项:
    • 伤害提升 - 增加箭矢伤害
    • 移动速度 - 提高移动速度
    • 生命值 - 增加最大生命值
    • 穿透射击 - 箭矢可以穿透敌人
    • 多重射击 - 同时发射多支箭
    • 射击速度 - 减少射击冷却时间

🚀 安装和运行

1. 安装依赖

npm install

2. 启动服务器

npm start

或者开发模式(自动重启):

npm run dev

3. 打开游戏

在浏览器中访问:http://localhost:3000

🎯 游戏操作

  • WASD - 移动角色
  • 鼠标移动 - 瞄准
  • 鼠标左键 - 射击
  • F键 - 收集附近的经验豆

🎲 游戏机制

经验系统

  • 地图上随机分布经验豆,收集可获得经验值
  • 达到升级要求时会弹出三个随机升级选项供选择
  • 升级所需经验:100 → 200 → 400 → 800 → 1600

战斗系统

  • 每个玩家初始100生命值
  • 箭矢基础伤害25点
  • 击杀敌人可获得其1/3的经验值,被杀者保留2/3经验值
  • 死亡后在地图随机位置重生

房间系统

  • 自动匹配到有空位的房间
  • 每个房间最多30名玩家
  • 实时显示房间内玩家数量

🛠 技术栈

后端

  • Node.js - 服务器运行环境
  • Express - Web框架
  • Socket.io - 实时通信
  • UUID - 唯一ID生成

前端

  • HTML5 Canvas - 游戏渲染
  • JavaScript ES6+ - 游戏逻辑
  • CSS3 - 界面样式
  • Socket.io Client - 客户端通信

📱 界面功能

  • 游戏状态面板: 显示生命值、经验值、等级、击杀数等
  • 小地图: 显示地图全貌和玩家位置
  • 排行榜: 实时显示击杀数排名前10的玩家
  • 升级模态框: 选择升级选项的界面
  • 操作说明: 游戏控制指南

🏆 游戏目标

  • 收集经验豆升级自己的能力
  • 击杀其他玩家获得更多经验
  • 在排行榜上争夺第一名
  • 成为最强的弓箭手!

🔧 自定义配置

可以在 server.js 中的 GAME_CONFIG 对象中调整游戏参数:

const GAME_CONFIG = {
    MAP_WIDTH: 2000,           // 地图宽度
    MAP_HEIGHT: 2000,          // 地图高度
    MAX_PLAYERS_PER_ROOM: 30,  // 每房间最大玩家数
    PLAYER_SPEED: 3,           // 玩家移动速度
    ARROW_SPEED: 8,            // 箭矢飞行速度
    ARROW_DAMAGE: 25,          // 基础箭矢伤害
    BASE_HP: 100,              // 基础生命值
    EXP_DROP_RATIO: 0.33       // 死亡经验掉落比例
};

📝 开发说明

游戏采用客户端-服务器架构:

  • 服务器负责游戏逻辑、碰撞检测、状态同步
  • 客户端负责渲染、输入处理、UI交互
  • 通过Socket.io实现实时数据同步

祝您游戏愉快!🏹✨

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published