Как стать автором
Обновить
9
0

Пользователь

Отправить сообщение

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

Про 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);
в документации предупреждают что это может привести к рассинхрону вывода т.е

#include <iostream> 
#include <cstdio>
 
int main ( ) 
{ 
    std :: ios :: sync_with_stdio ( false ) ; 
    std:: cout  <<  "a \n " ; 
    std:: printf ( "b \n " ) ; 
    std:: cout  <<  "c \n " ; 
}

в результате получим

б
а
с

для меня это критично так как рендеринг должен происходить поэтапно иначе получим кашу вместо четко отрисованного кадра, непонятно на сколько это вероятное событие

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность