
Сообщение от
gid
bit @#177716,#100
Какой интересный момент кстати да
Вот уж никогда бы так не написал (написал-бы наоборот).
А так с "отжатиями" этими вижу вот ну сразу проблему на клавиатуре БК. Например тут на УКНЦ нажатие или отжатие клавиши генерирует прерывание и можно ну сделать полное состояние клавиатуры по нему. Хотя в УКНЦ есть тоже проблема например отжатие кажется вверх и вниз генерирует одинаковый код, поэтому невозможно определить какую из клавиш точно отжали
Но как-бы на геймплей не особо влияет.
А в БК влиять будет вот что - скажем при нажатии шифта рокфорд не бежит, а как-бы либо двигает камень либо "скушивает" рядом алмаз или грязь (ну так там названо да, dirt). То-есть надо удерживая шифт нажимать вправо-влево-вверх-вниз. Мы например держим шифт нажатым. Нажимаем вправо - окей, он скушал алмаз справа. Далее не отпуская шифт нажимаем влево (но блин кнопка вправо-то уже отжата была и значит шифт тоже чтоли отжат... вообщем ужасы)
К счастью на БК есть джойстик и видимо лучше его использовать.
- - - Добавлено - - -
Еще возможно не сразу будет понятно почему я парюсь с этой клавиатурой даже на УКНЦ где она более-менее адекватно сделана.
На деле играбельность игры это вот на очень много процентов как-бы "отзывчивость" управления. А тут в игре всего 9 фпс. Это вам не 50 и не даже 25.
Итого что происходит:
Код:
[... идет цикл ожидания ..][идет обработка лабиринта][тут прорисовка обработанного]
^ здесь нажали кнопку ^ здесь отжали (а обработка кнопки чуть позже)
Можно по разному это перевернуть, но смысл не изменится.
Итого какие-то кнопки банально при таком фпс "проглотятся". Какие-то наоборот приведут к +2 перемещению если вовремя не отпустить.
Пробовал разные подходы и засовывать нажатые кнопки в буфер и прерывать цикл ожидания vsync при нажатии кнопки - лучше не становится (увы только хуже становилось, начиналась слишком быстрая беготня через 2 клетки).