【发布时间】:2017-05-29 17:32:23
【问题描述】:
我有这个问题,我想创建一个小游戏,对于一个使用 c# 的大学项目,我需要创建一个包含游戏逻辑的小 dll 库,但逻辑的核心是处理键盘事件。我知道“System.Form ..”允许监听键盘事件,但是有没有一种方法可以在不使用表单库的情况下处理单个键盘事件?我需要创建一个在按下键盘按钮时“启动”的事件,一个“像”这样的事件: 公共 OnKeyPress(KeyCode c)
有方法吗? 提前致谢。
【问题讨论】:
我有这个问题,我想创建一个小游戏,对于一个使用 c# 的大学项目,我需要创建一个包含游戏逻辑的小 dll 库,但逻辑的核心是处理键盘事件。我知道“System.Form ..”允许监听键盘事件,但是有没有一种方法可以在不使用表单库的情况下处理单个键盘事件?我需要创建一个在按下键盘按钮时“启动”的事件,一个“像”这样的事件: 公共 OnKeyPress(KeyCode c)
有方法吗? 提前致谢。
【问题讨论】:
您需要能够加载和使用 DLL 的东西。 DLL 本身不会运行。我们需要更多关于如何使用这个库的信息。您可以创建一个仅处理类/函数的库,但必须在某个地方监视键盘。
Here is a post 讨论全局键盘监控。该问题的答案链接到an MSDN article。
回到我最初提到的内容,您不需要在您的库中拥有实际事件。您可以创建一个仅包含功能代码的库。然后可以从处理事件的整个应用程序的更高级别调用该代码。这是一个非常简单的,老实说是hackish的例子:
public static class MyKeyboardActions
{
public void HandleKeyCharPress(char keyPressed)
{
switch(keyPressed)
{
case 'A':
// do code for key: A
break;
case 'B':
// do code for key: B
break;
// etc...
}
}
}
如果您想要比这更具体的内容,您需要在问题中详细说明您的项目,然后如果需要,我可以扩展我的答案。正如您所见,该代码不需要System.Windows.Forms 引用。
【讨论】: