Спасибо за подробный ответ, круто что есть люди которым не лень поделиться знаниями.
Про ncurses знал и понимал что надо использовать его, но специально не использовал, хотелось грубже копнуть в понимание как устроен ввод-вывод, графика, и прочее. Я же все таки это ради своего обучения и развития делаю.
По поводу /dev/input видил у соера на канале видео где он рассказывает про это, логично что так низко читать события плохо по безопасности, но ради образования я попробовал и не совсем понял почему event0 отвечает за ввод с клавиатуры ? и что все остальные event делают у меня их к примеру 30 штук в /dev/input ? и еще я так понимаю что каждое подключаемое устройство к ПК будет создавать по какому то интерфейсу свой новый event ? например если я подключил одну мышку это mouse0 потом подключил вторую и это уже mouse1 так ? если да то как ОС понимает откуда когда читать и получаеться что ОС все время читает из этих файлов что бы понять что юзверь нажал на мышку или клаву ?
Спасибо за комментарий, да я знаю про kbhit это функция из conio.h которая работает под dos системами (Windows и подобные) в линуксе на котором я разрабатывал игру этого файла по умолчанию нет, есть аналоги типа linux-conioh - реализация conio.h для linux на основе ncurses но как я писал в статье, я хотел обойтись только возможностями STL и не использовать сторонние библиотеки
Спасибо за комментарий, не знаю как я сам не нашел в интернете про std::cin.readsome()
Попробовал использовать, оно действительно работает без блокировки вывода, но только если выключить синхронизацию буферов Cи и C++ к примеру таким образом
std::ios_base::sync_with_stdio(false); в документации предупреждают что это может привести к рассинхрону вывода т.е
для меня это критично так как рендеринг должен происходить поэтапно иначе получим кашу вместо четко отрисованного кадра, непонятно на сколько это вероятное событие
Спасибо за подробный ответ, круто что есть люди которым не лень поделиться знаниями.
Про ncurses знал и понимал что надо использовать его, но специально не использовал, хотелось грубже копнуть в понимание как устроен ввод-вывод, графика, и прочее. Я же все таки это ради своего обучения и развития делаю.
По поводу /dev/input видил у соера на канале видео где он рассказывает про это, логично что так низко читать события плохо по безопасности, но ради образования я попробовал и не совсем понял почему event0 отвечает за ввод с клавиатуры ? и что все остальные event делают у меня их к примеру 30 штук в /dev/input ? и еще я так понимаю что каждое подключаемое устройство к ПК будет создавать по какому то интерфейсу свой новый event ? например если я подключил одну мышку это mouse0 потом подключил вторую и это уже mouse1 так ? если да то как ОС понимает откуда когда читать и получаеться что ОС все время читает из этих файлов что бы понять что юзверь нажал на мышку или клаву ?
Добрый день, не совсем понял что вы имеете ввиду ?
Спасибо за комментарий, да я знаю про kbhit это функция из conio.h которая работает под dos системами (Windows и подобные) в линуксе на котором я разрабатывал игру этого файла по умолчанию нет, есть аналоги типа linux-conioh - реализация conio.h для linux на основе ncurses но как я писал в статье, я хотел обойтись только возможностями STL и не использовать сторонние библиотеки
Спасибо за комментарий, не знаю как я сам не нашел в интернете про
std::cin.readsome()
Попробовал использовать, оно действительно работает без блокировки вывода, но только если выключить синхронизацию буферов Cи и C++ к примеру таким образом
std::ios_base::sync_with_stdio(false);
в документации предупреждают что это может привести к рассинхрону вывода т.е
в результате получим
для меня это критично так как рендеринг должен происходить поэтапно иначе получим кашу вместо четко отрисованного кадра, непонятно на сколько это вероятное событие