@events.char_typedможно отменить5 методовИгрок ввёл печатаемый символ. Раскладка, регистр и модификаторы уже применены системой.
Нужно, когда важна буква, а не клавиша: подсказки во время набора, свой разбор вводимого текста, счётчик символов.
На служебные клавиши событие не приходит совсем: стрелки, Enter, Backspace и Esc ловятся через key.
| Метод | Возвращает | Зачем |
|---|---|---|
getChar() | str | Сам символ строкой |
getCodePoint() | int | Номер символа в юникоде |
isShift() / isCtrl() / isAlt() | bool | Был ли зажат модификатор |
isScreenOpen() | bool | Открыт ли сейчас экран |
cancel() | - | Не дать символу попасть в поле ввода |
typed = []
@events.char_typed
def on_char(event):
# интересен только набор в чате, а не в инвентаре
if not event.isScreenOpen():
return
typed.append(event.getChar())
if len(typed) > 40:
del typed[0]
@events.tick
def on_tick(event):
if typed:
client.overlay("набрано: " + "".join(typed))Общий список всех событий и правила подписки лежат на странице События.