mirror of
http://junepve.top:3000/chicrobot/CINC.git
synced 2026-10-29 22:31:29 +08:00
2.6 KiB
2.6 KiB
CINC 游戏项目
项目介绍
CINC是一个基于Phaser.js开发的2D策略/模拟游戏项目。该项目采用模块化架构设计,实现了单位管理、选择控制、移动命令等核心游戏功能,支持键盘和鼠标操作,以及虚拟摇杆控制。
功能特性
- 单位系统:创建和管理游戏单位,支持单位移动和碰撞检测
- 选择系统:支持单选和框选多个单位
- 命令系统:处理单位移动命令,支持相对移动和目标点移动
- 输入系统:统一处理键盘和鼠标输入
- 响应式设计:适配不同屏幕尺寸
- 虚拟摇杆:支持触摸设备操作
技术栈
- 游戏引擎:Phaser.js
- 开发语言:ES6+ JavaScript (模块化)
- 渲染技术:HTML5 Canvas
- 物理系统:Phaser Arcade Physics
项目结构
├── config/ # 游戏配置文件
│ └── gameConfig.js
├── index.html # 入口HTML文件
├── main.js # 游戏初始化入口
├── objects/ # 游戏对象定义
│ └── Unit.js # 单位类
├── phaser.min.js # Phaser.js库
├── scenes/ # 游戏场景
│ └── GameScene.js
├── systems/ # 游戏系统
│ ├── CommandSystem.js # 命令处理系统
│ ├── ControlMode.js # 控制模式管理
│ ├── InputSystem.js # 输入处理系统
│ └── SelectionSystem.js # 单位选择系统
├── ui/ # 用户界面组件
│ └── VirtualJoystick.js # 虚拟摇杆
└── utils/ # 工具文件
运行方法
- 使用Python启动本地HTTP服务器:
python -m http.server 8000
- 在浏览器中访问:
http://localhost:8000
游戏操作
- 单选单位:鼠标左键点击单位
- 框选单位:按住鼠标左键拖动框选多个单位
- 移动命令:点击空地指定移动目标点
- 键盘控制:使用WASD或方向键进行相对移动(需先选中单位)
开发说明
项目采用模块化设计,各系统之间通过事件系统通信,便于扩展和维护。主要系统职责:
- InputSystem:处理所有输入事件,转换为游戏命令
- SelectionSystem:管理单位选择状态
- CommandSystem:执行具体游戏命令
- Unit:单位对象,处理自身逻辑和渲染
扩展建议
- 添加单位属性系统(生命值、攻击力等)
- 实现战斗系统
- 添加地图和关卡系统
- 实现资源管理系统
- 添加UI界面(控制面板、状态栏等)