2014-05-18 2 views
2

저는 C#에 익숙하지 않습니다. (웹 개발 세계에서 이전했습니다)..IsKeyDown (키 키)가 작동하지 않습니까?

어쨌든, 사용자로부터 입력을받는 간단한 배경색 변경 프로그램을 만들고 있습니다.

그래서 다음 Update() 방법에 난이 있습니다

 //[colorIntensity] = 0 then count up...when pressed 
     //Changes background color 
     KeyboardState keyState = new KeyboardState(); 

     if (keyState.IsKeyDown(Keys.R)) 
     { 
      redIntensity++; 
     } 

위의 코드가 작동하지 않습니다 나는 (backgroundColor = new Color(redIntensity, greenIntensity, blueIntensity); 나는이에 통과) 세 가지 색상의 변수가있다! 그러나, 나는 변경할 경우 :

 if(keyState.IsKeyDown(Keys.R)) ... 

사람 :

 if(keyState.IsKeyUp(Keys.R)) ... 

그것은 잘 작동 ... 그래서

, 조언?

편집 : XNA Framework를 사용하고 있습니다.

+0

당신이 사용하는 어떤 기술 :

는 현재 상태를 얻기 위해 Keyboard.GetState 방법을 사용? WPF? WinForms? 그리고'Update()'메소드를 트리거하는 것은 무엇입니까? 일반적으로 키 업/다운/프레스 이벤트 핸들러에서 이벤트를 트리거하기 위해 눌려진 키의 코드를 포함하는 인수를 얻습니다. 그것을 사용하십시오. –

+0

오 죄송합니다. 편집하겠습니다. XNA 프레임 워크를 사용하고 있습니다. 다른 사람과 함께 Update() 메서드를 자동으로 생성합니다. – user3400029

답변

8

KeyboardState 구조를 생성하므로 모든 키가 항상 위로 표시됩니다.

KeyboardState keyState = Keyboard.GetState(); 
관련 문제