static void Clear_ONGOING() { ONGOING_LBUTTONVENT = new MouseEvent(null, false); ONGOING_RBUTTONVENT = new MouseEvent(null, false); MOUSE_WHEEL = null; }
static void SendMouseEvent(Point p,bool keypressed) { MouseEvent eventdata = new MouseEvent(new MouseEventArgs(MouseButtons.Left, 1, p.X, p.Y, 0), keypressed); eventdata.Time = ProcessTime.AddMilliseconds(-1.0); MOUSEEVENT.Enqueue(eventdata); }
public static void InitialComponents() { LOW_PERFORMANCE_MODE = false; MOUSEEVENT = new Queue<MouseEvent>(); KEYEVENT = new Queue<KeyEvent>(); ProcessTime = DateTime.Now; KeyPressed = new Dictionary<Keys, bool>(); KeyDownNow = new Dictionary<Keys, bool>(); ONGOING_LBUTTONVENT = new MouseEvent(null, false); ONGOING_RBUTTONVENT = new MouseEvent(null, false); MOUSE_WHEEL = null; Game.EarthQuakeCompleted += Game_EarthQuakeCompleted; Add_Key(Keys.Up); Add_Key(Keys.Down); Add_Key(Keys.Left); Add_Key(Keys.Right); Add_Key(Keys.LButton); Add_Key(Keys.RButton); Add_Key(Keys.ControlKey); Add_Key(Keys.P); Add_Key(Keys.Escape); Add_Key(Keys.W); Add_Key(Keys.S); Add_Key(Keys.A); Add_Key(Keys.D); Add_Key(Keys.M); Add_Key(Keys.Q); Add_Key(Keys.Back); Add_Key(Keys.ShiftKey); Add_Key(Keys.N); Add_Key(Keys.B); Add_Key(Keys.O); }
static void Preprocess_KeyMouseEvents() { Reset_KeyNow(false); Clear_ONGOING(); while (KEYEVENT.Count > 0 && KEYEVENT.ElementAt(0).Time < ProcessTime) { var e = KEYEVENT.Dequeue(); Add_Key(e.Args.KeyCode, e.IsKeyDown); } while (MOUSEEVENT.Count > 0 && MOUSEEVENT.ElementAt(0).Time < ProcessTime) { var e = MOUSEEVENT.Dequeue(); if (e.Args.Button == MouseButtons.Left) { if (KeyPressed[Keys.LButton] != e.IsKeyDown) { if (ONGOING_LBUTTONVENT.Args != null && ONGOING_LBUTTONVENT.IsKeyDown && !e.IsKeyDown)//Click { ONGOING_LBUTTONVENT.FastClick = true; } else { ONGOING_LBUTTONVENT = e; Add_Key(Keys.LButton, e.IsKeyDown); } } } else if (e.Args.Button == MouseButtons.Right) { if (KeyPressed[Keys.RButton] != e.IsKeyDown) { if (ONGOING_RBUTTONVENT.Args != null && ONGOING_RBUTTONVENT.IsKeyDown && !e.IsKeyDown)//Click { ONGOING_RBUTTONVENT.FastClick = true; } else { ONGOING_RBUTTONVENT = e; Add_Key(Keys.RButton, e.IsKeyDown); } } } } }