소스 검색

No need to create a new gamepad array

Jean-David Moisan 6 년 전
부모
커밋
6bd6c41e61
1개의 변경된 파일6개의 추가작업 그리고 3개의 파일을 삭제
  1. 6 3
      Source/InputHelper.cs

+ 6 - 3
Source/InputHelper.cs

@@ -88,13 +88,11 @@ namespace Apos.Input {
 
             _oldMouse = _newMouse;
             _oldKeyboard = _newKeyboard;
-            _oldGamePad = _newGamepad;
+            _newGamepad.CopyTo(_oldGamePad, 0);
 
             _newMouse = Mouse.GetState();
             _newKeyboard = Keyboard.GetState();
 
-            _newGamepad = new GamePadState[GamePad.MaximumGamePadCount];
-            _gamePadCapabilities = new GamePadCapabilities[GamePad.MaximumGamePadCount];
             for (int i = 0; i < GamePad.MaximumGamePadCount; i++) {
                 _newGamepad[i] = GamePad.GetState(i);
             }
@@ -122,10 +120,15 @@ namespace Apos.Input {
             _newKeyboard = Keyboard.GetState();
             TouchPanel.GetCapabilities();
 
+            _oldGamePad = new GamePadState[GamePad.MaximumGamePadCount];
             _newGamepad = new GamePadState[GamePad.MaximumGamePadCount];
+            _gamePadCapabilities = new GamePadCapabilities[GamePad.MaximumGamePadCount];
             for (int i = 0; i < GamePad.MaximumGamePadCount; i++) {
                 _newGamepad[i] = GamePad.GetState(i);
             }
+            for (int i = 0; i < GamePad.MaximumGamePadCount; i++) {
+                _gamePadCapabilities[i] = GamePad.GetCapabilities(i);
+            }
 
             _newTouchCollection = TouchPanel.GetState();