internal static void Update() { if (!s_window.HasFocus()) { return; } _wasDown.Clear(); _keysDown.ForEach((item) => { _wasDown.Add(item); }); _keysDown.Clear(); _mouseState = Mouse.GetState(); _keyboardState = Keyboard.GetState(); inputstring = ""; foreach (Key key in Enum.GetValues(typeof(Key))) { if (_keyboardState.IsKeyDown(key) && s_window.HasFocus()) { _keysDown.Add(key); if (_wasDown.Contains(key)) { continue; } if (key == Key.Space) { inputstring += " "; } else if (key == Key.Quote) { inputstring += '"'; } else if (key == Key.LBracket) { inputstring += '('; } else if (key == Key.RBracket) { inputstring += ')'; } else if (key == Key.Minus) { inputstring += '_'; } else if (key == Key.Plus) { inputstring += '+'; } else if (key == Key.Period) { inputstring += '.'; } else if (key == Key.Number0) { inputstring += "0"; } else if (key == Key.Number1) { inputstring += "1"; } else if (key == Key.Number2) { inputstring += "2"; } else if (key == Key.Number3) { inputstring += "3"; } else if (key == Key.Number4) { inputstring += "4"; } else if (key == Key.Number5) { inputstring += "5"; } else if (key == Key.Number6) { inputstring += "6"; } else if (key == Key.Number7) { inputstring += "7"; } else if (key == Key.Number8) { inputstring += "8"; } else if (key == Key.Number9) { inputstring += "9"; } else { string c = key.ToString().ToLower(); if (c.Length == 1) { inputstring += c; } } } } var mp = GetMousePos(); mousepos = new vector((int)s_engine.DEF_WINDOW_WIDTH / 2 - mp.X, (int)s_engine.DEF_WINDOW_HEIGHT / 2 - mp.Y); if (mouselock) { if (mouselocked && !mouselock) { mouselocked = false; } if (!mouselocked && mouselock && s_window.HasFocus()) { mouselocked = mouselock; } if (mouselocked) { SetMousePos(new vector((int)s_engine.DEF_WINDOW_WIDTH / 2, (int)s_engine.DEF_WINDOW_HEIGHT / 2)); } SetMouseVisible(!mouselocked); } else { SetMouseVisible(true); } }
public static void SetMousePos(vector vector) { Mouse.SetPosition((int)vector.x, (int)vector.y); }