// 游戏控制模式常量定义 // 这些常量用于指定游戏当前使用的控制方式 export const CONTROL_MODE = { SINGLE: 'single', // 单单位控制模式:只控制当前激活的单个单位 GROUP: 'group', // 组控制模式:同时控制多个选中的单位 JOYSTICK: 'joystick' // 摇杆控制模式:使用虚拟摇杆控制单位 }; // 当前激活的单位变量 // 用于存储当前玩家正在直接控制的单个单位 // 初始值为null,表示没有激活的单位 export let activeUnit = null; // 选中的单位列表 // 用于存储玩家当前选中的所有单位 // 初始值为空数组,表示没有选中任何单位 export let selectedUnits = []; // 相机锁定状态 // 用于控制相机是否锁定到选中单位 // 初始值为false,表示未锁定 export let cameraLocked = false; // 设置当前激活单位的函数 // @param {Object} unit - 要设置为激活状态的单位对象 export function setActiveUnit(unit) { // 将传入的单位设置为当前激活单位 activeUnit = unit; // 注意:这里不再重置selectedUnits数组,这样可以同时选中多个单位 // 而只激活其中一个作为当前操作的单位 } // 将单位添加到选择列表的函数 // @param {Object} unit - 要添加到选择列表的单位对象 export function addToSelection(unit) { // 检查单位是否已经在选择列表中,如果不在则添加 if (!selectedUnits.includes(unit)) { // 将单位添加到选择列表的末尾 selectedUnits.push(unit); } } // 清除选择列表的函数 export function clearSelection() { // 将当前激活单位设置为null(取消激活) activeUnit = null; // 将选中的单位列表重置为空数组(取消所有选择) selectedUnits = []; // 取消相机锁定 setCameraLocked(false); } // 设置相机锁定状态的函数 export function setCameraLocked(locked) { cameraLocked = locked; // 将锁定状态暴露到window对象上,以便InputSystem访问 if (typeof window !== 'undefined') { window.cameraLocked = locked; } }