public void KeyPressed(Keys key) { lastKey = now; if (currentCombo == null) { Console.WriteLine("new combo"); } KeyComboNode node = currentCombo ?? rootNode; KeyComboNode newNode; bool end = node.KeyPressed(key, out newNode); if (end && currentCombo != null && newNode == null) { Console.WriteLine("combo ended"); ComboReset?.Invoke(this, EventArgs.Empty); currentCombo = null; KeyPressed(key); } else { currentCombo = newNode; } }
public void Update(GameTime gameTime) { now = gameTime.TotalGameTime.TotalMilliseconds; if (now - lastKey > 1000 && currentCombo != null) { ComboReset?.Invoke(this, EventArgs.Empty); currentCombo = null; } }