mirror of
http://junepve.top:3000/chicrobot/CINC.git
synced 2026-10-30 00:21:29 +08:00
60 lines
2.1 KiB
JavaScript
60 lines
2.1 KiB
JavaScript
// 游戏控制模式常量定义
|
|
// 这些常量用于指定游戏当前使用的控制方式
|
|
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;
|
|
}
|
|
} |