【问题标题】:Keyboard event C#键盘事件 C#
【发布时间】:2017-05-29 17:32:23
【问题描述】:

我有这个问题,我想创建一个小游戏,对于一个使用 c# 的大学项目,我需要创建一个包含游戏逻辑的小 dll 库,但逻辑的核心是处理键盘事件。我知道“System.Form ..”允许监听键盘事件,但是有没有一种方法可以在不使用表单库的情况下处理单个键盘事件?我需要创建一个在按下键盘按钮时“启动”的事件,一个“像”这样的事件: 公共 OnKeyPress(KeyCode c)

有方法吗? 提前致谢。

【问题讨论】:

    标签: c# .net events keyboard


    【解决方案1】:

    您需要能够加载和使用 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 引用。

    【讨论】:

    • 感谢您的回复,我的问题没有表达清楚,一般dll包含功能代码,该dll由表单应用程序或控制台应用程序使用,在dll中我要定义点为了启动游戏,当游戏启动时,每个键盘事件都需要进入“实时”处理事件的dll“内部”,并更改游戏的一些变量,最后dll更新控制台或表单。
    • 游戏基于一组单词在最短的时间内正确书写,当在键盘上按下一个空白字符时,将启动一个被捕获的事件,更新你的内容'一个字一个字地重新写。我认为您的回答是很好的解决方案。
    • 我的答案的第二部分应该正是你所需要的。您需要一个仅包含游戏逻辑代码的简单库。您希望将其与用户界面代码分离。不幸的是,没有你的游戏代码示例,或者没有关于功能代码需要做什么的规范,这是我们能做的最具体的答案。您需要进行分析以确定您需要哪种类型的库以及您的班级成员应该有哪些签名。
    猜你喜欢
    • 2022-01-22
    • 1970-01-01
    • 2020-12-13
    • 1970-01-01
    • 1970-01-01
    • 2011-01-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多