2014-01-24 5 views
1

Мне интересно, может ли кто-нибудь помочь мне с xinput (для и Xbox-контроллера) и vb.net.Использование XInput и VB.NET для поддержки контроллера xbox 360

То, что я пытаюсь сделать, это перевести движения аналоговых джойстиков на определенные события в моем приложении. В частности, я пытаюсь сделать перемещение карты при перемещении джойстика. Можно ли использовать xinput с vb.net? Я застрял в vb или C#, основываясь на том, что для библиотеки COM есть для приложения. Любые попытки добавить DLL просто бросают мне ошибку.

Спасибо за любую помощь,

Cheers!

+0

Пытались ли вы с MonoGame? https://monogame.codeplex.com/ – Aybe

+0

Нет, я не смотрел на это. Приложение (arcgis) основано на Windows, поэтому нет необходимости переносить его на другие ОС или мобильные устройства либо – Cody

+0

Кроме того, вы можете попробовать создать игру «фиктивный» и ссылаться на нее в своем приложении, если напрямую использовать библиотеки DLL не работают должным образом. – Aybe

ответ

1

Вы можете добиться этого с помощью MonoGame, вот небольшой пример приложения WPF, читающего значение палки левого пальца.

enter image description here

<Window x:Class="GamePadTest.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="MainWindow" Height="350" Width="525"> 
    <Grid> 
     <TextBlock x:Name="TextBlock1"></TextBlock> 
    </Grid> 
</Window> 

using Microsoft.Xna.Framework; 
using Microsoft.Xna.Framework.Input; 

namespace GamePadTest 
{ 
    /// <summary> 
    /// Interaction logic for MainWindow.xaml 
    /// </summary> 
    public partial class MainWindow : Window 
    { 
     public MainWindow() 
     { 
      InitializeComponent(); 
      CompositionTarget.Rendering += CompositionTarget_Rendering; 
     } 

     private void CompositionTarget_Rendering(object sender, EventArgs e) 
     { 
      var gamePadState = GamePad.GetState(PlayerIndex.One); 
      TextBlock1.Text = gamePadState.ThumbSticks.Left.ToString(); 
     } 
    } 
} 

Как я могу это сделать?

  • Установленная MonoGame: https://monogame.codeplex.com/
  • создал новый проект WPF и ссылки "C: \ Program Files (x86) \ MonoGame \ v3.0 \ Сборки \ Windows8 \ MonoGame.Framework.dll"

не забудьте скопировать SDL.dll в свой бен \ Debug, возьмите его здесь: http://www.libsdl.org/release/SDL-1.2.15-win32.zip

(сделано под Windows 8 x64 + Visual Studio 2012)

2

вы с а также посмотреть на http://sharpdx.org/

Это управляемая библиотека XInput. Подключение к контроллеру легко:

var controller = new SharpDX.XInput.Controller(SharpDX.XInput.UserIndex.One); 
if (controller.IsConnected) 
{ 
    var state = controller.GetState(); 
    var x = state.Gamepad.LeftThumbX; 
    var y = state.Gamepad.LeftThumbY; 
} 

SharpDX доступен как NuGet пакет

+0

SharpDX.XInput не управляемая библиотека DirectX, это управляемая библиотека XInput.. Тем не менее, полезная информация. Поскольку это высокий рейтинг в google, я думаю, стоит упомянуть здесь о том, что документы SharpDX кажутся разбитыми. Фактически вы можете просмотреть документы SlimDX (SharpDX - это реализация C# для SlimDX), которые намного полезнее. –

 Смежные вопросы

  • Нет связанных вопросов^_^