/* 文件名:Controller.nut 路径:User/Controller/Controller.nut 创建日期:2024-12-21 07:31 文件用途:控制器类 */ class _GameController_ extends _Input_ { //最新键码输入 KeyCode = null; GameKeyCode = null; GameKeyCodeCallback = null; constructor() { base.constructor(); GameKeyCodeCallback = {}; //建立键码表 按下flag全部为false this.KeyCode = {}; foreach(value in getconsttable().KeyCode) { this.KeyCode.rawset(value, false); } //建立游戏键码表 this.GameKeyCode = {}; foreach(Key, Value in getconsttable().CONTROLLER) { this.GameKeyCode.rawset(Key, Value); } } //系统对游戏的输入 function SystemInput(Code, Type) { SetKeyCode(Code, Type); } //设定键码状态 function SetKeyCode(Code, Status) { this.KeyCode[Code] = Status; //只遍历有回调的键码 foreach(RCode, Callback in GameKeyCodeCallback) { if (RCode == Code) { Callback(Status); } } } //获取键码状态 function GetKeyCode(Code) { return this.KeyCode[Code]; } //获取游戏键码状态 function GetGameKeyCode(Code) { if (!(GameKeyCode.rawin(Code))) return false; return GetKeyCode(GameKeyCode[Code]); } //注册游戏键码回调函数 function RegisterGameKeyCode(Code, Callback) { GameKeyCodeCallback[Code] <- Callback; } //Proc逻辑 function Proc(Dt, GameLister) { // //只遍历有回调的键码 // foreach(Code, Callback in GameKeyCodeCallback) { // //是否按下传递不同指令 // if (GetGameKeyCode(Code)) { // Callback(true); // } else { // Callback(false); // } // } } }