我正在学校编程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)
{
}
}
}
答案 0 :(得分:1)
此处有一篇关于在c#
中处理非阻塞键盘输入的博客项目http://www.dutton.me.uk/2009/02/24/non-blocking-keyboard-input-in-c/
另外,控制台键盘输入上的另一个堆栈溢出文章
How to read a key pressed by the user and display it on the console?
当然,我假设你正在做一个控制台应用程序。如果您正在使用WinForm应用程序,那么答案就不同了。
答案 1 :(得分:1)
您需要使用“PreviewKeyDown Event”来捕获按键。
我们只想说你想在你的表格中移动你的“英雄”,这是一个按钮。
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
答案 2 :(得分:0)
要为任何控件添加事件,请按F4打开属性窗口,然后单击Lightning Bolt图标: