【发布时间】:2014-01-17 12:23:25
【问题描述】:
我正在尝试将我的一个旧项目从 DirectX 移植到 SDL2。我正在使用 SDL2-CS,因为我可以找到的唯一其他绑定是 C# SDL2,它似乎已经过时(最后一个不稳定版本是 2010 年的 6.1.1beta,最后一个稳定版 - 2008 年的 6.1.0)
操纵杆(Logitech Force 3D Pro/Logitech Attack 3)功能齐全,可在 Windows 中使用 SDL2 和 DirectX 10 在 Linux 中运行。这是我在 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”消息,SDL.SDL_GetError() 的结果是有 0 个操纵杆可用,名称自然 = null。至少在我的 Linux 设备索引中一直是 == 0(我用 1,2,3... 进行了测试),因为在某个时间点我只有一个操纵杆连接到我的笔记本电脑。我还需要添加更多内容吗?欢迎提出想法、提示和/或批评!
谢谢, 澳洲联储
【问题讨论】:
-
您可能可以删除整个第一段,因为它并没有真正增加问题(除了可能使人们跳过您的问题的大块文本)。尽管保留您正在测试的控制器类型,因为这可能很重要。
-
谢谢。改了第一段。将保留有关从 DirectX 移植到 SDL2 和 C# 的其他 SDL2 绑定的信息,因为如果有的话,有人可能会建议更好的 SDL2-C# 绑定。