# 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/ # 工具文件 ``` ## 运行方法 1. 使用Python启动本地HTTP服务器: ```bash python -m http.server 8000 ``` 2. 在浏览器中访问: ``` http://localhost:8000 ``` ## 游戏操作 - **单选单位**:鼠标左键点击单位 - **框选单位**:按住鼠标左键拖动框选多个单位 - **移动命令**:点击空地指定移动目标点 - **键盘控制**:使用WASD或方向键进行相对移动(需先选中单位) ## 开发说明 项目采用模块化设计,各系统之间通过事件系统通信,便于扩展和维护。主要系统职责: - **InputSystem**:处理所有输入事件,转换为游戏命令 - **SelectionSystem**:管理单位选择状态 - **CommandSystem**:执行具体游戏命令 - **Unit**:单位对象,处理自身逻辑和渲染 ## 扩展建议 - 添加单位属性系统(生命值、攻击力等) - 实现战斗系统 - 添加地图和关卡系统 - 实现资源管理系统 - 添加UI界面(控制面板、状态栏等)