2013-06-02 2 views
0

저는 이전에 키보드를 사용하여 만든 게임 패드를 사용하여 아주 간단하게하려고합니다. 그리고 그것은 마지막 업데이트에서 어떤 버튼이 눌러 졌는지 기록하기 위해 오래된 상태를 만드는 것입니다. 키보드를 사용하는 경우Old GamePadState xbox 컨트롤러

그래서 나는이 같은 모습 코드했다 :

oldKeyboard = currentKeyboard; 

이것은 내 업데이트의 마지막에 배치했다 및 다음 업데이트에 내가 가질 수있는 의미를 경우 등

같은 문장
if (currentKeyboard.IsKeyDown(Keys.A) &&(oldKeyboard.IsKeyUp(Keys.A)) 
{ 
guy.drawRect.X ++; 
} 

내가 지금 가지고있는 문제는 내가 내 게임 코드에서 Xbox 게임 패드를 사용하고 있으며 올바른 코드가 무엇인지 모르는 것입니다. 현재 이것은 내가 가지고 있고 작동하지 않습니다 : P. 어떤 도움이라도 대단히 감사하겠습니다.

void ShipUpdate(GamePadState Curr, GamePadState Old) 
    { 
     Curr = GamePad.GetState(PlayerIndex.One); 

     if (Old.ThumbSticks.Left.X > 0.0f && (Curr.ThumbSticks.Left.X == 0.0f)) 
     { 
      move = MoveState.Still; 
      guy.srcRect.X = 0; 
     } 

     Old = Curr; 


    } 

나는이 J.E.E.P

+0

직접이 문제를 해결할 수있었습니다. 의 핵심은 다음 줄 무효 ShipUpdate (GamePadState 문헌 [Curr, GamePadState 오래된) 나는이 라인 모두에서 게임 패드 상태를 제거하면 그냥 잘 작동했다. 다음은 수정 된 행입니다. void ShipUpdate() – Gandeh

답변

0

당신은 실제로 이전의 상태를 업데이트하지 않습니다 그래서 여기가 아닌 모든 필수 코드를 제거했습니다. 당신은 인수로 그 전달하고 GamePadState는

Old = Curr; 

는 '오래된'변수의 로컬 복사본을 업데이트, 실제로 구조이기 때문에. 참조로 전달하십시오.

void ShipUpdate(ref GamePadState Curr, ref GamePadState Old)