Как читать символьно на стандартном вводе в Erlang

Я пытаюсь написать простую видеоигру и хотел бы, чтобы ввод вводился с клавиатуры. Поэтому мне нужно читать символы на стандартном вводе по мере их появления. Из-за буферизации, io: get_chars, io: fread вернется только после нажатия клавиши возврата.

  1. Можно ли получить доступ к символам в стандартном вводе по мере их производства?
  2. Как я должен это делать?

Суть проекта не в том, чтобы сделать реальную игру, это просто способ узнать об Эрланге. Поэтому производительность не является проблемой.

РЕДАКТИРОВАТЬ: Этот проект, кажется, предлагает функцию, которую я ищу. Если я не ошибаюсь, часть кода написана на C и отправляет символы в часть Erlang через передачу сообщений. Есть ли альтернатива, родная Erlang, этому подходу, или это единственный подход, который будет работать?

1 ответ

Решение

Вообще говоря, чтение из STDIN - это не тот путь, который вам нужен, когда дело доходит до обработки ввода с клавиатуры для игры. Вы хотите быть в состоянии прочитать состояние ключей в любой момент.

Взгляните на wxсправочное руководство)

Это интерфейс Erlang для библиотеки wxWidgets и включает интерфейсы для обработки различных входных данных, включая клавиатуры.

Другие вопросы по тегам