0

我正在尝试制作一个程序:如果你按下开始(按钮1)它应该开始工作如果你按下停止(按钮2)它会停止,直到你再次按下开始

我的目标:当它打开并且按下空格时,它应该“垃圾邮件”空格(你按住空格,它会在游戏中不断跳跃(cs))基本上我正在尝试为游戏创建兔子漏斗。我对 c# 表单应用程序很陌生,所以我不知道我的代码有什么问题..

什么不起作用:keydown 和 up 事件

这是我的代码:

namespace Bunny
{
    public partial class Form1 : Form
    {            
        Timer timer = new Timer();
        Boolean isOn = false;

        public Form1()
        {
            InitializeComponent();
            timer.Tick += new EventHandler(timer1_Tick);
            timer.Interval = 50;                      
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {            
            timer.Enabled = true;
            timer.Start();
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            if(isOn)
            {
                SendKeys.Send(" ");                    
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            timer.Enabled = false;
            timer.Stop();
        }
        private void Form1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Space)
            {
                isOn = true;
            }
        }
        private void Form1_KeyUp(object sender, System.Windows.Forms.KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Space)
            {
                isOn = false;
            }
        }

    }
}
4

1 回答 1

0

要在游戏中检测到您的键,需要将其编程为全局热键。我的猜测是,当表单聚焦时会检测到您的按键,而不是在游戏中。

请参阅下面的链接。 http://www.codeproject.com/Articles/2213/Beginner-s-Tutorial-Using-global-hotkeys

于 2013-05-17T16:04:21.850 回答