DeaDDooMER wrote:
3. Использование InputBuffer и функций ввода из e_input вообще надо в повыкидывать, а не расширять использование, так как это приводит к захардкоженным кнопкам.
Это просто псевдокод. Но да, неудачный, потому что в первом случае так-то тоже массив подразумевается. Убрал.
DeaDDooMER wrote:
Сейчас кнопка нажата, а через строчку уже не нажата, а ещё через строчку снова нажата.
Так клавиши не отжимаются. Виноват, во втором пункте должно было быть "все клавиши, нажатые до
конца тика", я слово пропустил. Исправил.
Учти ещё, что тут мной неявно подразумевается опрос ввода вне FPS и UPS.
DeaDDooMER wrote:
Весь инпут должен собираться в начале тика и оставаться одинаковым в течении тика.
Тогда как раз и получается, что в начале тика (читай: до нового кадра) зафиксировали ввод, обрабатываем, тут игрок кнопку нажал. В таком случае она отреагирует уже не на следующем
для него кадре, а через один, потому что мы этот кадр не показали ещё, мы его только считаем. Мой подход, конечно, тоже не до конца решает проблему (игрок всё ещё может нажать клавишу уже после того, как был пройден код, за неё отвечающий), но для полноценного решения надо отдельный поток гонять, который срабатывал бы на прерывания от клавиатуры.