فهرست منبع

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();