-3

我正在学校学习编程 2,我们正在使用 Visual Studio 2010 专业版。

我正在尝试制作一个游戏,您可以使用箭头键控制角色来移动角色以进行跳跃和前后移动。

我已经完成并设置了所有图形,但我需要能够制作它,以便我可以通过使用键更改变量来控制它,使角色移动并与事物交互。

你如何让程序注册一个被按下的键?

这是我到目前为止所拥有的:

namespace keypress2 
    { 
    public partial class Form1 : Form 
        { 
        public Form1() 
        { 
            InitializeComponent(); 
            this.textBox1.KeyDown += textBox1_KeyDown; 
        } 

        private void textBox1_KeyDown(object sender, KeyEventArgs e) 
        {

        } 
    } 
}
4

3 回答 3

1

这里有一个关于在 C# 中处理非阻塞键盘输入的博客项目

http://www.dutton.me.uk/2009/02/24/non-blocking-keyboard-input-in-c/

另外,关于控制台键盘输入的另一篇堆栈溢出文章

如何读取用户按下的键并将其显示在控制台上?

当然,我假设您正在做一个控制台应用程序。如果你正在做一个 WinForm 应用程序,那么答案就不同了。

于 2013-02-08T22:59:27.863 回答
1

您需要使用“PreviewKeyDown 事件”来捕获按键。

假设您想在表单中移动“英雄”,这是一个按钮。

Public Class Form1
    Private Hero As New Button
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Hero.Parent = Me
        Hero.Enabled = False
    End Sub
    Private Sub Form1_PreviewKeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.PreviewKeyDownEventArgs) Handles Me.PreviewKeyDown
        Select Case e.KeyCode
            Case Keys.Left
                Hero.Left -= 5
            Case Keys.Right
                Hero.Left += 5
            Case Keys.Down
                Hero.Top += 5
            Case Keys.Up
                Hero.Top -= 5
        End Select
    End Sub
End Class

您还可以捕获其他键,如 W、A、S、D 作为移动角色的替代键,以及 Control+S(保存游戏)。:D

于 2013-02-09T00:55:26.963 回答
0

要为任何控件添加事件,请按 F4 以打开属性窗口并单击闪电图标:

在此处输入图像描述

于 2013-02-09T21:34:41.720 回答