Soviet Union ZX Spectrum CommunityЧетверг, 22.06.2017, 19:26
Вы вошли как Гость | Группа "Гости" | RSS
 [ · Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Soviet Union ZX Spectrum Community » ZX-строительство » Эмуляторы » Идеология эмуляции ZX клавиатуры в Nintendo DS(L)
Идеология эмуляции ZX клавиатуры в Nintendo DS(L)
Black_CatДата: Четверг, 21.06.2007, 11:28 | Сообщение # 1
Координатор
Группа: Координаторы
Сообщений: 516
Статус: Online
Идеология эмуляции ZX клавиатуры в Nintendo DS(L).

Эмулировать ZX клавиатуру с только с помощью тачскрина и стилуса не всегда бывает удобно, особенно при работе с NDS(L) на весу, а на такой режим работы в основном и рассчитаны мобильные приставки. Поэтому есть смысл в NDS(L) использовать принцип эмуляции клавиатуры основанный на использовании джойстиков в качестве координатных устройств выбора символа/токена из матрицы символов отображаемых на вспомогательном экране.

Варианты идеологии эмуляцции ZX клавиатуры.

1. Эмуляция кнопок реальной клавиатуры.

Самый простой и самый неудобный способ. Реализуется навигацией только джойстиками по изображению традиционной 40 клавишной клавиатуры. Такому методу присущи как недостатки аналогичного стилусного ввода (невозможность отображения на маленьком изображении кнопок всех их функциональных значений), так и повышенная медлительность вызванная таким способом ввода;

2. Комбинированный метод.

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

3. Иерархический метод.

Менее привычный, но при определённой тренировке достаточно быстрый и удобный ввод с помощью двух джойстиков одновременно, при этом используется иерархический принцип выбора символов, при котором одним джойстиком выбирается один из нескольких массивов символов, а вторым символ в этом массиве. Удобство и скорость работы обеспечивается интуитивной согласованностью между расположением нажимаемых кнопок джойстика и расположением выбираемых символов на вспомогательном экране по принципу - каждому символу соответствует своё положение джойстика. Наиболее рационально использовать такой метод для управления в играх, и ввода управляющих команд бейсика. Такой метод обеспечивает максимально надёжный ввод в любых условиях эксплуатации и при этом приемлемую скорость, пригодную для создания коротких текстовых сообщений.

Критерии реализации иерархического метода.

1) Направление выбора джойстиков.

Который из джойстиков будет нажиматься первым/вторым (master/slave), т.е. кто из них выбирает старшую иерархию, а кто младшую, при этом master нажимается первым и удерживается, а slave нажимается уже при удерживаемом master, а свидетельством окончания выбора является последовательное опускание джойстиков master, а затем slave. При таком подходе то, с какого джойстика начинается выбор определяет одну из двух доступных иерархий - правую (4 -> 8), или левую (8 -> 4). Такой комбинаторный подход позволяет реализовать два разных дерева иерархий.

2) Порядок иерархий.

Т.к. за одно нажатие обоих джойстиков невозможно выбрать 256 значений знакогенератора, то такие нажатия приходится каскадировать. При этом последовательность нажатия джойстиков определяет формулу дерева иерархий, состоящую из последовательности 4х или 8ми ветвлений в соответствии с количеством позиций того или иного джойстика. Критерием выбора последовательности иерархий при этом может служить минимальное количество переходов. В знакогенераторе символы расположены группами по 32 символа. В разных видах деятельности пользователя одновременно используются разные группы символов. Например при набивке ассемблерных текстов одновременно используется пара цифро-знаковой группы и группы заглавных букв, а при набивке текстов литературных дополнительно будет нужна пара цифро-знаковой группы и группы строчных букв и т.д. При этом наиболее вероятными являются переходы между группами внутри пар, поэтому такие переходы должны быть наиболее быстыми. Достичь этого можно например при использовании в окончании дерева иерархий, иерархии 8-8. При этом обеспечивается выбор из 64 символов (т.е. как раз пара групп по 32 символа) в двухуровневой иерархии.

3) Независимые символы-клавиши.

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

4) Состав групп символов.

Не обязательно использовать группы символов так, как они сгруппированы в знакогенераторе, в некоторых случаях для уменьшения количества переходов между группами в паре есть смысл переместить часть наиболее употребимых символов одной группы в другую. Например основную массу литературного текста составляют строчные буквы и знаки препинания. Группа строчных букв состоит из 26 букв и 6 символов, которые есть смысл заменить на символы знаков препинания используемых совместно со строчными буквами. Это позволит снизить количество переходов между группами.

5) Способы группировки токенов.

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

- двухсимвольные/7-9 символьные;
- трёхсимвольные;
- четырёхсимвольные;
- пятисимвольные/шестисимвольные;

В пустующие места в группах могут быть продублированы наиболее употребительные в бейсике символы для сокращения количества длинных переходов между группами.

6) Слитность нажатия джойстиков.

Цепочка нажатий воспринимаемая как одно целое. Непрерывность цепочки определяется удержанием одного из джойстиков до нажатия следующего.

7) Избыточность.

Использование дублирования некоторых ветвей для сокращения количества длинных переходов.

8) Структура графа движения по дереву выбора символа.

а) линейный граф - переход с одного уровня иерархии на другой как в прямом так и в обратном направлении осуществляется единичным нажатием кнопки джойстика;
б) циклический граф - при достижении конечного уровня иерархии происходит автоматический возврат на исходный уровень иерархии;
в) петлевой граф - при достижении конечного уровня иерархии происходит автоматический возврат на промежуточный уровень иерархии;


"Трудно найти чёрную кошку в тёмной комнате.. ...особенно, если её там нет", "Forever!".
"Я никогда не причиняю им зла. Я говорю им правду, и они думают, что это - зло."
Гарри Трумэн
 
Soviet Union ZX Spectrum Community » ZX-строительство » Эмуляторы » Идеология эмуляции ZX клавиатуры в Nintendo DS(L)
Страница 1 из 11
Поиск:

Copyright MyCorp © 2006Сайт управляется системой uCoz