Как читать символьно на стандартном вводе в Erlang
Я пытаюсь написать простую видеоигру и хотел бы, чтобы ввод вводился с клавиатуры. Поэтому мне нужно читать символы на стандартном вводе по мере их появления. Из-за буферизации, io: get_chars, io: fread вернется только после нажатия клавиши возврата.
- Можно ли получить доступ к символам в стандартном вводе по мере их производства?
- Как я должен это делать?
Суть проекта не в том, чтобы сделать реальную игру, это просто способ узнать об Эрланге. Поэтому производительность не является проблемой.
РЕДАКТИРОВАТЬ: Этот проект, кажется, предлагает функцию, которую я ищу. Если я не ошибаюсь, часть кода написана на C и отправляет символы в часть Erlang через передачу сообщений. Есть ли альтернатива, родная Erlang, этому подходу, или это единственный подход, который будет работать?
1 ответ
Вообще говоря, чтение из STDIN - это не тот путь, который вам нужен, когда дело доходит до обработки ввода с клавиатуры для игры. Вы хотите быть в состоянии прочитать состояние ключей в любой момент.
Взгляните на wx (и справочное руководство)
Это интерфейс Erlang для библиотеки wxWidgets и включает интерфейсы для обработки различных входных данных, включая клавиатуры.