public override void Update(GameTime gameTime) { switch (_state) { case FontState.Typing: _elapsedDelayTime += gameTime.ElapsedGameTime; if (_elapsedDelayTime >= DelayTime) { _elapsedDelayTime = TimeSpan.Zero; _currentLetterIndex++; if (_currentLetterIndex >= _textToType.ToString().Length) { Finished(false); return; } EventHandler <CharacterTypedEventArgs> handler = CharacterTyped; CharacterTypedEventArgs arguments = new CharacterTypedEventArgs(_textToType.ToString()[_currentLetterIndex]); if (handler != null) { handler(this, arguments); } if (!arguments.Cancel) { _text.Append(arguments.TypedCharacter); } else { // Undo increment of the index - will retry to type later _currentLetterIndex--; } } break; default: //pass break; } base.Update(gameTime); }
public override void Update(GameTime gameTime) { switch (_state) { case FontState.Typing: _elapsedDelayTime += gameTime.ElapsedGameTime; if (_elapsedDelayTime >= DelayTime) { _elapsedDelayTime = TimeSpan.Zero; _currentLetterIndex++; if (_currentLetterIndex >= _textToType.ToString().Length) { Finished(false); return; } EventHandler<CharacterTypedEventArgs> handler = CharacterTyped; CharacterTypedEventArgs arguments = new CharacterTypedEventArgs(_textToType.ToString()[_currentLetterIndex]); if (handler != null) { handler(this, arguments); } if (!arguments.Cancel) { _text.Append(arguments.TypedCharacter); } else { // Undo increment of the index - will retry to type later _currentLetterIndex--; } } break; default: //pass break; } base.Update(gameTime); }