User Tag List

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

Тема: Вектор-06Ц. подключение USB-мыши.

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

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

    По умолчанию

    Цитата Сообщение от KTSerg Посмотреть сообщение
    Если этот вопрос ко мне, то разве я говорил, что при эмуляции могут возникнуть какие-то проблемы с младшими битами скорости перемещения мыши?
    Я неточно выразился. Но ты сказал, что:
    Цитата Сообщение от KTSerg Посмотреть сообщение
    Только что туда будут передавать в эмуляторах (если эмуляция контроллера появится) ?
    При эмуляции ведь этих "отрезанных бит" не будет.
    Исправляю вопрос -- почему не будет отрезанных бит при эмуляции? Потому что координаты курсора в сообщениях винды привязаны к пикселям? Тут тоже есть много деталей. Как ты точно подметил, сейчас мало кто может позволить себе запустить эмулятор с увеличением 1х на современных мониторах, так что 1/4 пикселя будет не редкость. Кроме того, перемещения курсора можно получать через WM_INPUT и они будут в нативном разрешении мыши, ну или по крайней мере в каком-то минимально пережеванном. Это может быть нужно не для супбиксельного позиционирования курсора, а для плавного движения какого-нибудь предмета в игре, например.
    Больше игр нет

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

  3. #2

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

    По умолчанию

    Цитата Сообщение от svofski Посмотреть сообщение
    Это может быть нужно не для супбиксельного позиционирования курсора, а для плавного движения какого-нибудь предмета в игре, например.
    Мне кажется, что для плавного движения лучше сделать регулируемую скорость перемещения мыши, т.е. просто нужен некий внутренний регистр в контроллере, куда можно занести коэффициент деления, чтобы можно было программно (или аппаратно, переключателем) настроить комфортную скорость. И тогда "X смещение со знаком % 8" и "Y смещение со знаком % 8" могут пригодиться ровно никогда и их можно будет просто отбросить.

    А вот как это всё встроить в эмулятор... Ну, например, в винде есть параметр "скорость курсора мыши", можно попробовать его изменять в моменты, когда курсор находится над окном эмулятора. Как вариант, делать полный захват курсора окном эмулятора, как это делается в некоторых программах удалённого доступа.

  4. #3

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

    По умолчанию

    Цитата Сообщение от svofski Посмотреть сообщение
    ...
    Исправляю вопрос -- почему не будет отрезанных бит при эмуляции?
    Потому что смысла нет.
    ... Кроме того, перемещения курсора можно получать через WM_INPUT и они будут в нативном разрешении мыши, ну или по крайней мере в каком-то минимально пережеванном. Это может быть нужно не для супбиксельного позиционирования курсора, а для плавного движения какого-нибудь предмета в игре, например.
    Спасибо. Рассмешил, развеселил, сделал день....

    Я себе так живо представил картинку....

    Сидит "Курсор" почти по центру экрана Вектора, в координатах 127,127.
    А тут "Программа" получает от "Контроллера" сообщение, что "Мышь" сместилась на (11-битное число со знаком) 1023 пикселя в сторону, и нужно туда "Курсор" отправить... срочно!!!

    Кто знает, что ответит "Программа" "Контроллеру", в ответ на приказ отправить "Курсор" на такое расстояние?

    - - - Добавлено - - -

    Цитата Сообщение от Improver Посмотреть сообщение
    ...
    А вот как это всё встроить в эмулятор... Ну, например, в винде есть параметр "скорость курсора мыши", можно попробовать его изменять в моменты, когда курсор находится над окном эмулятора. Как вариант, делать полный захват курсора окном эмулятора, как это делается в некоторых программах удалённого доступа.
    Не нужны эмулятору ни какие скорости.
    Конечно, я уже писал, что я вообще не разбираюсь в эмуляции.
    Но с моей ламерской точки зрения, решение вопроса, это несколько переменных и минимум вычислений.
    1. Позиция "курсора" РС всегда привязана к пикселям на экране Вектора, шаг/пиксельклок/коэффициент - как хотите это назовите.
    2. При запросе данных из регистра смещения, эмулятор фиксирует текущую координату "курсора" (по запрошенной оси) и вычисляет разницу с координатой, которая была зафиксирована во время предыдущего запроса. Разница и есть смещение "курсора" по оси за промежуток времени между запросами.
    Фиксация координаты и вычисления делаются отдельно для регистров смещения по X и Y.
    3. После предоставления значения смещения, текущие координата сохраняется как "предыдущая" и ждём следующего запроса из этого регистра.
    Это правда справедливо для перемещения мыши в пределах экрана эмуляции. Как адаптировать "смещение" мыши ЗА пределами экрана эмуляции - нужно думать.

    И "скорость" смещения в эмуляторе ВСЕГДА будет зависеть от настроек чувствительности мыши в операционке РС. Хочешь 50 dpi выстави, хочешь 5000 dpi.
    Я ведь много раз говорил, что корректировка скорости мыши в контроллере, это проблема исключительно РЕАЛЬНОГО контроллера мыши.
    И это первая и главная задача любого реального контроллера, подготовить внешние данные для принимающей стороны, чтобы она (принимающая сторона) этими данными не подавилась...
    Нафига РЕАЛЬНОМУ Вектору скорости смещения мыши в 1023 пикселя, если РЕАЛЬНЫЙ экран Вектора всего 256 пикселей...
    Последний раз редактировалось KTSerg; 19.08.2024 в 13:57.

  5. #4

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

    По умолчанию

    Цитата Сообщение от KTSerg Посмотреть сообщение
    несколько переменных и минимум вычислений
    Если минимум вычислений на Векторе, то да, согласен полностью. Но контроллер и эмуляторы могут вычислять сколько угодно...

    Цитата Сообщение от KTSerg Посмотреть сообщение
    Как адаптировать "смещение" мыши ЗА пределами экрана эмуляции - нужно думать.
    А что там думать? Мышь за пределами экрана эмулятора -- координаты не меняются, завели указатель в экран -- начали обновлять...

    Цитата Сообщение от KTSerg Посмотреть сообщение
    И "скорость" смещения в эмуляторе ВСЕГДА будет зависеть от настроек чувствительности мыши в операционке РС.
    Увы, но не всегда. Как пример могу привести "VMware Remote Console", там при захвате мышки удалённой машиной в пределах окна скорость перемещения зависит не от настроек хоста, а от настроек удалённой виртуальной машины. Значит такой фокус вполне возможен и в эмуляторе Вектора, если вдруг понадобится.

    Цитата Сообщение от KTSerg Посмотреть сообщение
    Я ведь много раз говорил, что корректировка скорости мыши в контроллере, это проблема исключительно РЕАЛЬНОГО контроллера мыши.
    И с этим тоже согласен. Но мне кажется, иметь в контроллере такую настройку не помешает, чтобы можно было выставлять комфортную для себя скорость, для любой мышки.

    Цитата Сообщение от KTSerg Посмотреть сообщение
    Нафига РЕАЛЬНОМУ Вектору скорости смещения мыши в 1023 пикселя, если РЕАЛЬНЫЙ экран Вектора всего 256 пикселей.
    Я тоже не понимаю, зачем это, но у других, видимо, есть идеи, где это можно использовать...

  6. #5

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

    По умолчанию

    Цитата Сообщение от Improver Посмотреть сообщение
    ...
    А что там думать? Мышь за пределами экрана эмулятора -- координаты не меняются, завели указатель в экран -- начали обновлять...
    ...
    Я вот думаю, что при выходе курсора РС за экран эмулятора (в режиме окна), регистры координат меняться не будут, они ведь имеют ограничения значений, координаты будут указывать на кромку/край окна.
    А вот в регистры смещения можно записывать некое значение, указывающую направление, в котором находится курсор. чем дальше от края окна, тем больше значение "смещения".
    Для полноэкранного режима эмулятора этот вариант конечно не подходит, но наверное тоже как-то решаемо.

  7. #6

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

    По умолчанию

    Цитата Сообщение от KTSerg Посмотреть сообщение
    координаты будут указывать на кромку/край окна.
    Обычно так и бывает. И да, координаты мыши в эмуляторе при этом меняться не будут.

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

  8. #7

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

    По умолчанию

    Цитата Сообщение от KTSerg Посмотреть сообщение
    Потому что смысла нет.
    Как ты определяшь смысл до того, как написан софт? Какие критерии?

    Вот это твои слова, может быть устаревшие, потому что они из самого первого сообщения и может быть с тех пор что-то изменилось, но я отталкивался от них:
    Цитата Сообщение от KTSerg Посмотреть сообщение
    Пришлось уменьшить скорость в 8 раз.
    Вроде бы не такое огромное число раз. Это всего три бита, которые не нужны ровно до тех пор, пока они не понадобятся. Сейчас тебе субъективно показалось, что с твоей мышью и для той игры, которую ты адаптируешь, это хороший делитель. Но будут другие мыши и другие игры и там это может быть не так.

    Мне показалось, или ты не настроен на конструктивную беседу? Я всегда рад развеселить коллегу, но это не моя основная цель. Если ты твердо принял решение делать по своему, то я не хочу мешать.
    Больше игр нет

  9. #8

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

    По умолчанию

    Цитата Сообщение от svofski Посмотреть сообщение
    Как ты определяшь смысл до того, как написан софт? Какие критерии?
    ...
    Я за конструктивный диалог.
    Прошу пояснить мне, какой смысл для Вектора, в перемещениях на 1023 пикселя, если сам экран 256 пикселей?
    Если только прикоснулся к мыши, а курсор уже пролетел все "элементы управления", и упёрся в край экрана.
    Последний раз редактировалось KTSerg; 19.08.2024 в 16:46.

  10. #9

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

    По умолчанию

    Цитата Сообщение от KTSerg Посмотреть сообщение
    Прошу пояснить мне, какой смысл в перемещениях на 1023 пикселя, если сам экран 256 пикселей?
    Если только прикоснулся к мыши, а курсор уже пролетел все "элементы управления", и упёрся в край экрана.
    Смысл такой же, как в 16 битах звука. Младшие 8 мы не особо то слышим, но если оставить только старшие 8, становится понятно, как плохо без младших 8. Зачем ты повторяешь, что при малейшем касании мышка должна улететь на 1023 пикселя? Я точно так же могу продолжить твой аргумент и привести его к абсурду. Потому что если 10-битная мышка улетает на 1023 пикселя, значит 7-битная улетает сразу на 127 пикселей, я правильно поделил? И чем одно другого лучше?

    Мое предолжение просто в том, чтобы оставить возможность программе эти младшие три бита получить, если они ей понадобятся. Может быть кто-то захочет сделать продвинутую акселерацию курсора. А может быть мышка будет управлять не курсором вообще, это просто устройство ввода с относительным перемещением. Мы пока не знаем, что программы будут делать с данными, они еще не написаны. Если такое простое желание стоит стольких сломанных копий и высмеивания, ну что ж. Я понимаю, ты все решения уже принял. Обсуждать больше нечего.
    Больше игр нет

    Этот пользователь поблагодарил svofski за это полезное сообщение:

    ivagor(19.08.2024)

  11. #10

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

    По умолчанию

    Цитата Сообщение от svofski Посмотреть сообщение
    ...
    Зачем ты повторяешь, что при малейшем касании мышка должна улететь на 1023 пикселя? Я точно так же могу продолжить твой аргумент и привести его к абсурду. Потому что если 10-битная мышка улетает на 1023 пикселя, значит 7-битная улетает сразу на 127 пикселей, я правильно поделил? И чем одно другого лучше?
    ...
    Я уже писал, что первоначально проводил такой эксперимент с полными данными мыши.
    Чуть больше 5мм смещения мыши и курсор уже от края экрана до края экрана пробежал. Практически не мог его нормально позиционировать.
    Я уже писал, мне не жалко регистров, можно и эти младшие биты в контроллер добавить.
    Уже писал, что режу эти три бита не сразу на входе, а использую их (полные данные от мыши) для 16-битного счётчика смещения. Это позволяет не терять мелкую моторику и плавное перемещение курсора. А вот для комфортного перемещения курсора по экрану Вектора, 150 dpi оказалось в самый раз.
    И пока так и не могу себе представить практического применения манипуляций мыши, когда пользователь не может попасть ни в один элемент управления.

    Я предложил "заготовку" контроллера, адаптировал под неё игру, желающие могут повторить и попробовать.
    Вообще не буду против, даже буду ЗА, если кто-то в предложенный "контроллера мыши" добавит что-то ещё, и предложит протестировать в своей программе.
    Бузу только рад, с удовольствием попытаюсь повторить доработку и испытать.
    Последний раз редактировалось KTSerg; 19.08.2024 в 17:17.

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

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

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

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

Похожие темы

  1. Ответов: 574
    Последнее: 23.08.2024, 09:14
  2. Ответов: 82
    Последнее: 04.07.2022, 12:10
  3. Ответов: 1
    Последнее: 27.04.2022, 11:52
  4. Ответов: 15
    Последнее: 20.01.2022, 17:03
  5. Ответов: 4
    Последнее: 23.06.2016, 00:02

Ваши права

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