zoukankan      html  css  js  c++  java
  • winform 按键控制

    用ADSW来控制前后左右,J表示开火,J不能连续按

    _+表示速度档位、

     DateTime _LastPress = DateTime.MinValue;
            Keys _PrevKey = Keys.None;
            List<Keys> CtlKeys = new List<Keys>() { Keys.A, Keys.D, Keys.S, Keys.W, Keys.J, Keys.Add, Keys.Subtract };
            protected override bool ProcessKeyPreview(ref Message m)
            {
               
                
                var key = (Keys)m.WParam.ToInt32();
                if (!CtlKeys.Contains(key))
                {
                    return false;
                }
                if (m.Msg == WM_KEYDOWN)
                {
                    if (key == Keys.J && _PrevKey==key)
                    {
                        
                        
    
                        var delay=(DateTime.Now - _LastPress).TotalMilliseconds ;
                        Console.WriteLine(delay);
                            
                        if (delay < 1000)
                        {
                            Console.WriteLine("连续按J");
                            _LastPress = DateTime.Now;
                            return true;
                        }
                    }
                    Console.Write("按下->");
                    Console.WriteLine(key);
                    _PrevKey = key;
                    _LastPress = DateTime.Now;
                 
                }
                if (m.Msg == WM_KEYUP)
                {
                    Console.Write("释放->");
                    Console.WriteLine(key);
                }
    
    
                
                return base.ProcessKeyPreview(ref m);
            }
    View Code
  • 相关阅读:
    orm操作
    模板语言
    路由
    newlib中printf库函数的实现
    调试问题记录
    GCC部分编译选项解析
    Lauterbach TRACE32使用技巧记录
    ARM32 页表映射过程
    TTBR0与TTBR1
    Camera Sensor基础知识
  • 原文地址:https://www.cnblogs.com/wdfrog/p/5040803.html
Copyright © 2011-2022 走看看