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/           # 物品系统
│   ├── Inventory.js # 背包系统
│   ├── 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服务器:
python -m http.server 8000
  1. 在浏览器中访问:
http://localhost:3173

游戏操作

单位操作

  • 单选单位:鼠标左键点击单位
  • 框选单位:按住鼠标左键拖动框选多个单位
  • 移动命令:点击空地指定移动目标点
  • 键盘控制:使用WASD或方向键进行相对移动(需先选中单位)

物品操作

  • 查看物品信息:鼠标左键点击物品
  • 拾取物品:点击物品后按E键
  • 快捷使用物品:点击物品后按Q键
  • 创建随机物品:按1键
  • 创建食物类物品:按2键
  • 创建工具类物品:按3键
  • 清理所有物品:按4键

场景导航

  • 返回启动场景:按空格键

相机控制

  • 移动视角:使用WASD或方向键
  • 小地图交互:点击小地图快速移动视角,拖拽小地图调整视角

开发说明

项目采用模块化设计,各系统之间通过事件系统通信,便于扩展和维护。主要系统职责:

  • InputSystem:处理所有输入事件,转换为游戏命令,支持键盘、鼠标和虚拟摇杆输入
  • SelectionSystem:管理单位选择状态,支持单选和框选
  • CommandSystem:执行具体游戏命令,处理单位移动和交互
  • ItemManager:加载和管理物品数据,创建和维护物品实例
  • Inventory:背包系统,管理拾取的物品,支持网格类型的背包系统
  • Unit:单位对象,处理自身逻辑和渲染
  • Item:物品对象,处理物品交互和使用逻辑

扩展建议

  • 物品系统扩展:
    • 增强背包系统功能(如物品堆叠、自动整理)
    • 添加物品合成和制作系统
    • 实现物品耐久度和消耗机制
    • 添加更多物品类型和属性
  • 战斗系统:
    • 实现单位属性系统(生命值、攻击力等)
    • 添加攻击和防御机制
    • 实现战斗动画和特效
  • 地图和关卡系统:
    • 实现地图生成和加载
    • 添加关卡目标和胜利条件
    • 实现地形和障碍物系统
  • 资源管理系统:
    • 添加资源采集和生产机制
    • 实现资源存储和消耗系统
  • UI界面扩展:
    • 实现背包界面
    • 添加角色属性面板
    • 实现技能和升级系统界面
    • 添加游戏菜单和设置界面
  • 多人游戏:
    • 实现本地多人游戏
    • 添加网络多人游戏支持
S
Description
No description provided
Readme
1.8 MiB
0 Stars 1 Watchers 0 Forks
Languages
JavaScript 94.6%
Python 5%
HTML 0.4%