예제 #1
0
파일: XiaoMeng.cs 프로젝트: luoxz-ai/Meteor
    bool GetInputState()
    {
        KEY_CLICK_STATE KeyAState = GetKeyClickState(KeyCode.A);
        KEY_CLICK_STATE KeySState = GetKeyClickState(KeyCode.S);
        KEY_CLICK_STATE KeyDState = GetKeyClickState(KeyCode.D);
        KEY_CLICK_STATE KeyWState = GetKeyClickState(KeyCode.W);

        bool bAttackeyActive = (KeyAState != KEY_CLICK_STATE.KEY_IDLE) ||
                               (KeySState != KEY_CLICK_STATE.KEY_IDLE) ||
                               (KeyDState != KEY_CLICK_STATE.KEY_IDLE) ||
                               (KeyWState != KEY_CLICK_STATE.KEY_IDLE);

        if (bAttackeyActive)
        {
            CommondKeyRecord KeyRecord = new CommondKeyRecord();
            KeyRecord.timeStamp = Time.time;
            KeyRecord.SetKeyState(KeyCode.A, KeyAState);
            KeyRecord.SetKeyState(KeyCode.S, KeySState);
            KeyRecord.SetKeyState(KeyCode.D, KeyDState);
            KeyRecord.SetKeyState(KeyCode.W, KeyWState);

            while (m_KeyRecordList.Count > m_MaxRecordSize)
            {
                m_KeyRecordList.RemoveAt(0);
            }
            m_KeyRecordList.Add(KeyRecord);

            CalcClickKeys(m_KeyCheckDuration);

            return(true);
        }
        return(false);
    }
예제 #2
0
파일: XiaoMeng.cs 프로젝트: luoxz-ai/Meteor
    private bool CalcMoveCommond()
    {
        if (m_KeyRecordList.Count > 0)
        {
            Vector3          moveSpeed = Vector3.zero;
            CommondKeyRecord KeyRecord = m_KeyRecordList[m_KeyRecordList.Count - 1];
            if (KeyRecord.IsKeyDownOrHold(KeyCode.W))
            {
                moveSpeed += transform.forward * m_MoveForwardSpeed;
            }
            if (KeyRecord.IsKeyDownOrHold(KeyCode.S))
            {
                moveSpeed -= transform.forward * m_MoveBackSpeed;
            }
            if (KeyRecord.IsKeyDownOrHold(KeyCode.A))
            {
                moveSpeed -= transform.right * m_MoveLeftSpeed;
            }
            if (KeyRecord.IsKeyDownOrHold(KeyCode.D))
            {
                moveSpeed += transform.right * m_MoveBackSpeed;
            }

            m_ActionState             = ACTION_STATE.MOVE_NORMAL;
            m_NormalMoveCmd.moveSpeed = moveSpeed;
            return(true);
        }
        m_ActionState = ACTION_STATE.IDLE;
        return(false);
    }
예제 #3
0
파일: XiaoMeng.cs 프로젝트: luoxz-ai/Meteor
 public bool IsKeyDownOrHold()
 {
     if (m_KeyRecordList.Count > 0)
     {
         CommondKeyRecord KeyRecord = m_KeyRecordList[m_KeyRecordList.Count];
         if (KeyRecord.IsKeyDownOrHold(KeyCode.A) ||
             KeyRecord.IsKeyDownOrHold(KeyCode.S) ||
             KeyRecord.IsKeyDownOrHold(KeyCode.D) ||
             KeyRecord.IsKeyDownOrHold(KeyCode.W))
         {
             return(true);
         }
     }
     return(false);
 }
예제 #4
0
파일: XiaoMeng.cs 프로젝트: luoxz-ai/Meteor
 private void CalcClickKeys(float duration)
 {
     m_ClickKeyList.Clear();
     for (int i = m_KeyRecordList.Count - 1; i >= 0; --i)
     {
         CommondKeyRecord KeyRecord = m_KeyRecordList[i];
         if (Time.time > KeyRecord.timeStamp + duration)
         {
             break;
         }
         KeyCode downKey;
         if (KeyRecord.GetDownKey(out downKey))
         {
             m_ClickKeyList.Add(downKey);
         }
     }
 }