public virtual IMessage Decode(byte[] bytes) { header.Clear(); header.Decode(bytes, 0); switch (header.GetMessageType()) { case MessageType.Keyboard: keyboard.Clear(); keyboard.Decode(bytes, 0); return(keyboard); case MessageType.Rocker: rocker.Clear(); rocker.Decode(bytes, 0); return(rocker); case MessageType.Gyro: gyro.Clear(); gyro.Decode(bytes, 0); return(gyro); } return(null); }
//摇杆消息 public static IMessage Rocker(byte hid, byte id, float x, float y, string keyName, KeyboardState state) { int keycode = KeyMap[hid][keyName]; MessageRocker msg = new MessageRocker(); msg.Clear(); msg.Rid = id; msg.TimeStamp = SystemTime.LowClientNow(); msg.Hid = hid; msg.KeyCode = (KeyCode2)keycode; msg.State = state; msg.Rx = x; msg.Ry = y; return(msg); }