Files
CINC/README.md
T

125 lines
4.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# CINC 游戏项目
## 项目介绍
CINC是一个基于Phaser.js开发的2D策略/模拟游戏项目。该项目采用模块化架构设计,实现了单位管理、选择控制、移动命令等核心游戏功能,支持键盘和鼠标操作,以及虚拟摇杆控制。
## 功能特性
- **单位系统**:创建和管理游戏单位,支持单位移动和碰撞检测
- **选择系统**:支持单选和框选多个单位
- **命令系统**:处理单位移动命令,支持相对移动和目标点移动
- **输入系统**:统一处理键盘和鼠标输入
- **物品系统**:支持物品的创建、拾取、使用和管理
- **侧边栏UI**:显示游戏信息、角色属性、物品详情和交互提示
- **响应式设计**:适配不同屏幕尺寸
- **虚拟摇杆**:支持触摸设备操作
## 技术栈
- **游戏引擎**:Phaser.js
- **开发语言**:ES6+ JavaScript (模块化)
- **渲染技术**:HTML5 Canvas
- **物理系统**:Phaser Arcade Physics
## 项目结构
```
├── config/ # 游戏配置文件
│ └── gameConfig.js
├── data/ # 游戏数据文件
│ └── items.json # 物品数据定义
├── index.html # 入口HTML文件
├── items/ # 物品系统
│ ├── Item.js # 物品类
│ └── ItemManager.js # 物品管理器
├── main.js # 游戏初始化入口
├── objects/ # 游戏对象定义
│ └── Unit.js # 单位类
├── phaser.min.js # Phaser.js库
├── scenes/ # 游戏场景
│ ├── BootScene.js # 启动场景
│ ├── GameScene.js # 主游戏场景
│ ├── ItemTestScene.js # 物品系统测试场景
│ ├── MovementTestScene1.js # 移动测试场景1
│ ├── MovementTestScene2.js # 移动测试场景2
│ ├── MovementTestScene3.js # 移动测试场景3
│ ├── MovementTestScene4.js # 移动测试场景4
│ ├── MovementTestScene5.js # 移动测试场景5
│ └── MovementTestScene6.js # 移动测试场景6
├── systems/ # 游戏系统
│ ├── CommandSystem.js # 命令处理系统
│ ├── ControlMode.js # 控制模式管理
│ ├── InputSystem.js # 输入处理系统
│ └── SelectionSystem.js # 单位选择系统
├── ui/ # 用户界面组件
│ ├── MiniMap.js # 小地图组件
│ └── VirtualJoystick.js # 虚拟摇杆
└── utils/ # 工具文件
```
## 运行方法
1. 使用Python启动本地HTTP服务器:
```bash
python -m http.server 8000
```
2. 在浏览器中访问:
```
http://localhost:8000
```
## 游戏操作
### 单位操作
- **单选单位**:鼠标左键点击单位
- **框选单位**:按住鼠标左键拖动框选多个单位
- **移动命令**:点击空地指定移动目标点
- **键盘控制**:使用WASD或方向键进行相对移动(需先选中单位)
### 物品操作
- **查看物品信息**:鼠标左键点击物品
- **拾取物品**:点击物品后按E键
- **快捷使用物品**:点击物品后按Q键
- **创建随机物品**:按1键
- **创建食物类物品**:按2键
- **创建工具类物品**:按3键
- **清理所有物品**:按4键
### 场景导航
- **返回启动场景**:按空格键
### 相机控制
- **移动视角**:使用WASD或方向键
- **小地图交互**:点击小地图快速移动视角,拖拽小地图调整视角
## 开发说明
项目采用模块化设计,各系统之间通过事件系统通信,便于扩展和维护。主要系统职责:
- **InputSystem**:处理所有输入事件,转换为游戏命令,支持键盘、鼠标和虚拟摇杆输入
- **SelectionSystem**:管理单位选择状态,支持单选和框选
- **CommandSystem**:执行具体游戏命令,处理单位移动和交互
- **ItemManager**:加载和管理物品数据,创建和维护物品实例
- **Unit**:单位对象,处理自身逻辑和渲染
- **Item**:物品对象,处理物品交互和使用逻辑
## 扩展建议
- **物品系统扩展**:
- 实现背包系统,管理拾取的物品
- 添加物品合成和制作系统
- 实现物品耐久度和消耗机制
- 添加更多物品类型和属性
- **战斗系统**:
- 实现单位属性系统(生命值、攻击力等)
- 添加攻击和防御机制
- 实现战斗动画和特效
- **地图和关卡系统**:
- 实现地图生成和加载
- 添加关卡目标和胜利条件
- 实现地形和障碍物系统
- **资源管理系统**:
- 添加资源采集和生产机制
- 实现资源存储和消耗系统
- **UI界面扩展**:
- 实现背包界面
- 添加角色属性面板
- 实现技能和升级系统界面
- 添加游戏菜单和设置界面
- **多人游戏**:
- 实现本地多人游戏
- 添加网络多人游戏支持