我試圖將我的一箇舊項目從DirectX移植到SDL2。我正在使用SDL2-CS,因爲我唯一可以找到的其他綁定是C#SDL2,它似乎已過時(2010年最後一個不穩定版本爲6.1.1beta,最後一個穩定版本 - 2008年爲6.1.0)SDL 2 C# - 打開操縱桿設備
操縱桿(Logitech Force 3D Pro/Logitech Attack 3)功能齊全,可在Windows環境下使用SDL2和DirectX 10工作。這裏是我在C#中的Joystick-Hello-world(使用VS2010中的默認控制檯應用程序項目;對SDL2-CS.dll的引用(SDL2.dll也存在於創建EXE的文件夾中)也在那裏,並編譯/運行任何錯誤):
using System;
using System.Collection.Generic;
using System.Linq;
using System.Text;
using SDL2;
namespace Joystick_In_SDL_2_For_CSharp
{
class Program
{
static void Main(string[] args)
{
SDL.SDL_Init(SDL.SDL_INIT_EVERYTHING);
IntPtr myJoystick = SLD.SDL_Joystick(0);
if(myJoystick == IntPtr.Zero)
System.Console.WriteLine("Ooops, something fishy's goin' on here!" + SDL.SDL_GetError());
else
System.Console.WriteLine("You have successfully loaded the joystick \"" + SDL.SDL_JoystickName(myJoystick) + "\"");
SDL.SDL_JoystickClose(myJoystick);
}
}
}
控制檯顯示包括 「Ooops」 -message,從SDL.SDL_GetError()的結果是現有0操縱桿可用和名稱是自然= NULL。至少在Linux設備索引中我一直都是== 0(我測試過1,2,3 ...),因爲我在某個時間點只有一個操縱桿連接到我的筆記本。我需要添加更多東西嗎?想法,技巧和/或批評是最受歡迎的!
感謝, RBA
您可能會刪除整個第一段,因爲它沒有真正添加太多的問題(除了大塊的文字可能會讓人跳過你的問題)。雖然確實會留下正在測試的控制器類型,但這可能很重要。 –
謝謝。改變了第一段。將保留有關從DirectX移植到SDL2以及用於C#的其他SDL2綁定的信息,不過因爲有人可能會建議更好的SDL2-C#綁定(如果有)。 – rbaleksandar