Можете ли вы уточнить, что вы подразумеваете под "удалить событие"? Вы хотите игнорировать определенное событие или хотите «отключить» прослушиватель событий?
Если первое, я бы предложил написать слушателя, который просто игнорирует событие.
Если позже, почему бы не сделать тело слушателя зависимым от некоторого внешне доступного значения, предоставив себе переключатель включения / выключения.
Если вы хотите что-то еще, отредактируйте вопрос, чтобы уточнить, и я вернусь позже и отредактирую свой ответ.
В ответ на ваш комментарий я бы повторно предложил второй из вышеперечисленных вариантов. Если вы хотите стать действительно модным, вы можете написать что-то вроде этого:
$keypress_listeners = {}
keypress do |key|
$keypress_listeners.values.each { |l| l.call(key)
end
$keypress_listeners[:hero_controller] = lambda { |key| ... }
:
:
$keypress_listeners.delete[:hero_controller]
и аналогично для любых других событий, но это, вероятно, излишне. С другой стороны, это даст вам полный контроль над обработкой событий.