Beispiel #1
0
        private bool IsPressed(CommandElement expectInput, int lastInput, int curInput)
        {
            int expect = expectInput.keyCode;

            if ((expectInput.keyModifier & (1 << (int)KeyModifier.KeyMode_Detect_As_4Way)) != 0)
            {
                if ((lastInput & expect) != expect && (curInput & expect) == expect)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            else
            {
                if ((lastInput != expect) && (curInput == expect))
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
        }
Beispiel #2
0
        public static Command GetCommand(ConfigDataCommand commandConfig)
        {
            Command command = new Command();

            command.mBufferTime  = commandConfig.BufferTime;
            command.mCommandName = commandConfig.Name;
            command.mCommandTime = commandConfig.Time;
            command.mCommand     = new List <CommandElement>();
            Tokenizer      tokenizer = new Tokenizer();
            List <Token>   tokens    = tokenizer.GetTokens(commandConfig.Def);
            int            pos       = 0;
            int            tokenSize = tokens.Count;
            Token          t;
            CommandElement currentCommandElement = new CommandElement();

            while (pos < tokenSize)
            {
                t = tokens[pos++];
                if (t.value == ",")//遇到意味着之前的CommandElement结束了
                {
                    command.mCommand.Add(currentCommandElement);
                    currentCommandElement = new CommandElement();
                }
                else if (t.value == "U")
                {
                    currentCommandElement.keyCode += CommandHelper.GetKeycode(KeyNames.KEY_UP);
                }
                else if (t.value == "D")
                {
                    currentCommandElement.keyCode += CommandHelper.GetKeycode(KeyNames.KEY_DOWN);
                }
                else if (t.value == "B")
                {
                    currentCommandElement.keyCode += CommandHelper.GetKeycode(KeyNames.KEY_LEFT);
                }
                else if (t.value == "F")
                {
                    currentCommandElement.keyCode += CommandHelper.GetKeycode(KeyNames.KEY_RIGHT);
                }
                else if (t.value == "DB")
                {
                    currentCommandElement.keyCode += CommandHelper.GetKeycode(KeyNames.KEY_DOWN) + CommandHelper.GetKeycode(KeyNames.KEY_LEFT);
                }
                else if (t.value == "DF")
                {
                    currentCommandElement.keyCode += CommandHelper.GetKeycode(KeyNames.KEY_DOWN) + CommandHelper.GetKeycode(KeyNames.KEY_RIGHT);
                }
                else if (t.value == "UB")
                {
                    currentCommandElement.keyCode += CommandHelper.GetKeycode(KeyNames.KEY_UP) + CommandHelper.GetKeycode(KeyNames.KEY_LEFT);
                }
                else if (t.value == "UF")
                {
                    currentCommandElement.keyCode += CommandHelper.GetKeycode(KeyNames.KEY_UP) + CommandHelper.GetKeycode(KeyNames.KEY_RIGHT);
                }
                else if (t.value == "a")
                {
                    currentCommandElement.keyCode += CommandHelper.GetKeycode(KeyNames.KEY_BUTTON_A);
                }
                else if (t.value == "b")
                {
                    currentCommandElement.keyCode += CommandHelper.GetKeycode(KeyNames.KEY_BUTTON_B);
                }
                else if (t.value == "c")
                {
                    currentCommandElement.keyCode += CommandHelper.GetKeycode(KeyNames.KEY_BUTTON_C);
                }
                else if (t.value == "x")
                {
                    currentCommandElement.keyCode += CommandHelper.GetKeycode(KeyNames.KEY_BUTTON_X);
                }
                else if (t.value == "y")
                {
                    currentCommandElement.keyCode += CommandHelper.GetKeycode(KeyNames.KEY_BUTTON_Y);
                }
                else if (t.value == "z")
                {
                    currentCommandElement.keyCode += CommandHelper.GetKeycode(KeyNames.KEY_BUTTON_Z);
                }
                else if (t.value == "$")
                {
                    currentCommandElement.keyModifier += 1 << (int)KeyModifier.KeyMode_Detect_As_4Way;
                }
                else if (t.value == "/")
                {
                    currentCommandElement.keyModifier += 1 << (int)KeyModifier.KeyMode_Must_Be_Held;
                }
                else if (t.value == "~")
                {
                    currentCommandElement.keyModifier += 1 << (int)KeyModifier.KeyMode_On_Release;
                }
            }//while
            command.mCommand.Add(currentCommandElement);//加入最后一个
            return(command);
        }