Важная информация

User Tag List

Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 15

Тема: Адаптация "PENCIL-DISC" для работы с мышью (на разъёме "ПУ").

  1. #1
    Veteran
    Регистрация
    22.02.2014
    Адрес
    г. Курган
    Сообщений
    1,657
    Спасибо Благодарностей отдано 
    218
    Спасибо Благодарностей получено 
    301
    Поблагодарили
    212 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Адаптация "PENCIL-DISC" для работы с мышью (на разъёме "ПУ").

    Для начала пытаюсь анализировать программу, на предмет управления курсором...
    И до меня вдруг доходит, что если попытаться пользоваться преимуществом мыши - быстрым смещением курсора на несколько пикселей в произвольном направлении, то я буду вынужден (в рамках драйвера мыши) формировать траекторию, по которой курсор должен двигаться от предыдущей позиции до новой, эту траекторию преобразовать в последовательность кодов соответствующих клавиш курсора, и заполнить этими кодами буфер клавиатуры.
    Хотя, возможно я и ошибаюсь.
    Так как при рисовании не должно быть резких движений как в играх, и больших смещений, скорее всего не будет. Но даже смещение на 2-3 пикселя (за одно прерывание), это уже потребует расчётов траектории движения...

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    7,844
    Спасибо Благодарностей отдано 
    654
    Спасибо Благодарностей получено 
    1,822
    Поблагодарили
    1,045 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Зачем траектория? Глянул исходный (не дисковый) карандаш. Там нажатия клавиш управления приводят к изменению координат курсора, ничего сверхъестественного. Можно разве что учитывать "округление по сетке". По умолчанию там дискретность 8 точек, но вроде можно было менять, только я забыл как.

  4. #3
    Veteran
    Регистрация
    22.02.2014
    Адрес
    г. Курган
    Сообщений
    1,657
    Спасибо Благодарностей отдано 
    218
    Спасибо Благодарностей получено 
    301
    Поблагодарили
    212 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Зачем траектория? Глянул исходный (не дисковый) карандаш. Там нажатия клавиш управления приводят к изменению координат курсора, ничего сверхъестественного. Можно разве что учитывать "округление по сетке". По умолчанию там дискретность 8 точек, но вроде можно было менять, только я забыл как.
    Дискретность переключается клавишей "стр" (вроде) либо 8 точек, либо 1 точка.
    Если при рисовании курсор будет "перепрыгивать" через пиксели, это будет нервировать.
    Буду смотреть, как джойстик встроен в управление.
    Скорее всего, придётся использовать мышку в режиме эмуляции джойстика, и посмотреть на сколько это юзабельно.
    Напрямую, просто менять координаты курсора не получится. Координаты меняются при обработке команд (кодов из буфера управления). Для простого перемещения курсора, программа кучу всего делает... восстанавливает экран под курсором, сохраняет часть экрана под новой позицией, рисует курсор на новом месте... Корректнее, подсовывать коды клавиш управления в буфер клавиатуры. Но не знаю ещё как джойстик интегрирован, может действительно есть возможность грубо менять координаты... посмотрим.

  5. #4
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    7,844
    Спасибо Благодарностей отдано 
    654
    Спасибо Благодарностей получено 
    1,822
    Поблагодарили
    1,045 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от KTSerg Посмотреть сообщение
    Если при рисовании курсор будет "перепрыгивать" через пиксели, это будет нервировать.
    Что значит перепрыгивать? Мышью можно перемещать курсор быстро, но если слишком быстро, то можно делить приращения координат на некий коэффициент для большей точности (и, как вариант, переключать клавишей режимы скорость/точность).
    Цитата Сообщение от KTSerg Посмотреть сообщение
    Напрямую, просто менять координаты курсора не получится. Координаты меняются при обработке команд (кодов из буфера управления).
    Так никто же не запрещает переделать под мышь нормально, чтобы сразу менялись координаты без эмуляции клавиатуры.

  6. #5
    Veteran
    Регистрация
    22.02.2014
    Адрес
    г. Курган
    Сообщений
    1,657
    Спасибо Благодарностей отдано 
    218
    Спасибо Благодарностей получено 
    301
    Поблагодарили
    212 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Что значит перепрыгивать? Мышью можно перемещать курсор быстро, но если слишком быстро, то можно делить приращения координат на некий коэффициент для большей точности (и, как вариант, переключать клавишей режимы скорость/точность).
    ...
    Если за одно прерывание, мышь переместилась на 4 пикселя, то есть два варианта...
    Сразу указать новую позицию курсора - при этом курсор перепрыгнет из начальной точки в конечную, будет разрыв линии на траектории движения курсора.
    Либо рассчитать траекторию между предыдущей позицией и новой, и подсунуть буферу коды, которые заставят курсор постепенно двигаться по всему пути, не создавая разрыва в рисуемой линии.

    Всё это домыслы, юзабельность мыши будет понятна только когда посмотрю, как интегрирован джойстик, и не попробую как работает мышь в режиме эмуляции джойстика.

  7. #6
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    7,844
    Спасибо Благодарностей отдано 
    654
    Спасибо Благодарностей получено 
    1,822
    Поблагодарили
    1,045 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Можно сделать буфер приращений мыши по аналогии с буфером клавиш. Плюс разделить координаты на 1) внутренние (точные) и 2) те, которые были в оригинале и которые используются для отображения курсора. При таком подходе в принципе можно даже сделать параллельное управление мышью и клавиатурой для любителей извращений.

  8. #7
    Veteran
    Регистрация
    22.02.2014
    Адрес
    г. Курган
    Сообщений
    1,657
    Спасибо Благодарностей отдано 
    218
    Спасибо Благодарностей получено 
    301
    Поблагодарили
    212 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Можно сделать буфер приращений мыши по аналогии с буфером клавиш. Плюс разделить координаты на 1) внутренние (точные) и 2) те, которые были в оригинале и которые используются для отображения курсора. При таком подходе в принципе можно даже сделать параллельное управление мышью и клавиатурой для любителей извращений.
    Я уже думал о необходимости буфера приращений мыши. Без него приращения будут теряться, если программа не успеет выполнить какие-то действия за одно прерывание.
    Делать параллельное управление, это с моей точки зрения, слишком большое вмешательство в программу.
    Ведь адаптированным к мыши Арканоидом судя по всему почти никто не заинтересовался.

  9. #8
    Guru Аватар для svofski
    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,116
    Спасибо Благодарностей отдано 
    795
    Спасибо Благодарностей получено 
    658
    Поблагодарили
    403 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от KTSerg Посмотреть сообщение
    адаптированным к мыши Арканоидом судя по всему почти никто не заинтересовался
    Как ты пришел к такому выводу? =)
    Больше игр нет

  10. #9
    Master Аватар для Improver
    Регистрация
    06.02.2018
    Адрес
    г. Волгоград
    Сообщений
    975
    Спасибо Благодарностей отдано 
    430
    Спасибо Благодарностей получено 
    396
    Поблагодарили
    221 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от KTSerg Посмотреть сообщение
    Я уже думал о необходимости буфера приращений мыши. Без него приращения будут теряться, если программа не успеет выполнить какие-то действия за одно прерывание.
    Вот, ещё один плюс к созданию аппаратного буфера, т.е. передачи координат вместо приращений...

  11. #10
    Guru Аватар для svofski
    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,116
    Спасибо Благодарностей отдано 
    795
    Спасибо Благодарностей получено 
    658
    Поблагодарили
    403 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Не хочется заново поднимать спор, но аппаратный буфер != передача координат вместо приращений.
    Больше игр нет

Страница 1 из 2 12 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 17
    Последнее: 26.12.2015, 23:22
  2. Ответов: 51
    Последнее: 23.03.2015, 10:45
  3. Ответов: 51
    Последнее: 11.08.2014, 10:40
  4. Ответов: 0
    Последнее: 15.08.2010, 14:38

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •