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

User Tag List

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

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

  1. #1

    Регистрация
    22.02.2014
    Адрес
    г. Курган
    Сообщений
    1,706
    Спасибо Благодарностей отдано 
    275
    Спасибо Благодарностей получено 
    318
    Поблагодарили
    222 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

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

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

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

  3. #2

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,386
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,365
    Поблагодарили
    1,315 сообщений
    Mentioned
    38 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  4. #3

    Регистрация
    22.02.2014
    Адрес
    г. Курган
    Сообщений
    1,706
    Спасибо Благодарностей отдано 
    275
    Спасибо Благодарностей получено 
    318
    Поблагодарили
    222 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  5. #4

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,386
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,365
    Поблагодарили
    1,315 сообщений
    Mentioned
    38 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  6. #5

    Регистрация
    22.02.2014
    Адрес
    г. Курган
    Сообщений
    1,706
    Спасибо Благодарностей отдано 
    275
    Спасибо Благодарностей получено 
    318
    Поблагодарили
    222 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

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

  7. #6

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,386
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,365
    Поблагодарили
    1,315 сообщений
    Mentioned
    38 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  8. #7

    Регистрация
    22.02.2014
    Адрес
    г. Курган
    Сообщений
    1,706
    Спасибо Благодарностей отдано 
    275
    Спасибо Благодарностей получено 
    318
    Поблагодарили
    222 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  9. #8

    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,299
    Спасибо Благодарностей отдано 
    1,027
    Спасибо Благодарностей получено 
    811
    Поблагодарили
    484 сообщений
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  10. #9

    Регистрация
    06.02.2018
    Адрес
    г. Волгоград
    Сообщений
    1,060
    Спасибо Благодарностей отдано 
    578
    Спасибо Благодарностей получено 
    468
    Поблагодарили
    251 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  11. #10

    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,299
    Спасибо Благодарностей отдано 
    1,027
    Спасибо Благодарностей получено 
    811
    Поблагодарили
    484 сообщений
    Mentioned
    26 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

Ваши права

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