Вы привели убедительные доводы. Возможно, действительно стоит пересмотреть "клавишную" политику. Но, с другой стороны, раз эти возможности поддерживаются браузерами, значит их тоже кто-то использует, ведь можно было просто запретить вешать события на функциональные клавиши.
Например, есть у нас эмулятор какого-нибудь условного Спектрума на js. Естественно, там будут работать ф-клавиши. Не думаю, что кого-то это сильно смутит. В разных программах ф-клавиши, да и вообще горячие клавиши ведут себя по-разному. Есть какие-то негласные соглашения, что F1 это справка, а F5 обновить. Но, если человеку нужно попасть в режим разработчика, значит этот человек знает на что идёт ) и он и без F12 туда попадет.
Отредактировано johnbrown (07.01.2019 23:03)
Неактивен
Я не знаю, честно. Наверное, надо спросить мнение какого-нибудь "продуктового" веб-разработчика. Мне просто хочется, чтобы пп максимально использовал возможности браузера.
Вот, кстати, насчёт эмулятора. Интересно, а как у Инстеда в онлайне работают ф-клавиши?
P.S. ну, и для ясности: клавиши F3, F4, F5, F10, F11, F12 я не переопределял.
Отредактировано johnbrown (08.01.2019 08:02)
Неактивен
Онлайновый инстед перехватывает все F-клавиши, которые может (потому что хром, например, некоторые F-клавиши перехватывать не позволяет).
Но там по-другому сделать в принципе нельзя, т.к. instead-em - это скомпилированный в JS код десктопного инстеда, и он максимально повторяет функциональность десктопного приложения.
UPD: что касается горячих клавиш, я бы рекомендовал вместо F1-F12 использовать комбинации Alt+[что-то]. Типа Alt+L - просмотр логов.
Отредактировано techniX (08.01.2019 11:30)
Неактивен
Есть 3 стандарта клавиатурных сокращений для веба (для ссылок, но здесь не важно), выбирайте по вкусу: http://htmlbook.ru/html/a/accesskey
Отредактировано Oreolek (08.01.2019 17:57)
Неактивен
Oreolek написал:
Есть 3 стандарта клавиатурных сокращений для веба (для ссылок, но здесь не важно), выбирайте по вкусу: http://htmlbook.ru/html/a/accesskey
Нет, в данном случае это не подходит. Атрибут accesskey должен быть привязан к какому-то существующему в DOM элементу страницы, так что для реализации горячей клавиши для вывода истории команд по простому нажатию использован быть не может. Для этого нужно где-то на странице делать ссылку или кнопку для целевого действия, которой и назначать accesskey. Кроме того, реализация горячих клавиш через accesskey имеет дополнительные недостатки: во-первых, в разных браузерах такие команды обрабатываются по-разному (где-то элемент сразу активируется, а где-то только фокусируется, так что активировать его надо будет дополнительным нажатием Enter или Space), а во-вторых, срабатывание accesskey зависит от раскладки, то есть accesskey="x" не сработает при активной русской раскладке, так что относительно удобно и предсказуемо для пользователя можно использовать только 10 цифр.
Хотя если вы имеете ввиду просто взять за ориентир набор модификаторов, то да. Но лично я бы предпочёл самый простой - только Alt, как уже здесь предлагалось.
Кстати, с F8 я вчера погорячился - в браузерах она также свободна, так что её в принципе можно занимать. Выделение с её помощью - это локальная история из области Microsoft Office и браузеры не затрагивает.
Отредактировано Nikita (08.01.2019 18:20)
Неактивен
Поиграл в Плащ тьмы. Всё нормально, но есть неудобство: когда вводишь команды ВОЗЬМИ КРЮЧОК, ПОВЕСЬ ПЛАЩ, то парсер не понимает это, а жаль...
Неактивен
Vladimir написал:
Поиграл в Плащ тьмы. Всё нормально, но есть неудобство: когда вводишь команды ВОЗЬМИ КРЮЧОК, ПОВЕСЬ ПЛАЩ, то парсер не понимает это, а жаль...
Работают команды
> взять крючок > повесить плащ
Глаголы в повелительном наклонении я не включал в стандартную библиотеку и не планирую, но если кому-то нужно, то они легко добавляются в самом игровом файле.
Отредактировано johnbrown (06.02.2021 10:35)
Неактивен
johnbrown написал:
Глаголы в повелительном наклонении я не включал в стандартную библиотеку и не планирую...
Добавил задачу. Спасибо за замечание.
Неактивен
Вообще повелительное наклонение имеет смысл, если платформа поддерживает функциональность управления персонажами, то есть для грамотного написания команд "трактирщик, дай водки". В ситуации базового управления и типового повествования от второго лица мы командами в инфинитиве отвечаем на вопрос "что делать?", а не отдаём приказ персонажу, так как персонаж - это мы сами.
В любом случае, стоит учитывать, что добавление повелительного наклонения предполагает утроение, а не удвоение глагольных словоформ, потому что необходимо добавлять форму единственного и множественного числа: "трактирщик, дай водки", "господа, дайте вина". Контекст может побуждать игрока обращаться во множественном числе даже к единичному персонажу: "сударь, откройте дверь". Если сильно придираться, то можно ставить вопрос и об упятерении глагольных словоформ за счёт частицы "ка": "трактирщик, дай-ка водки", "господа, дайте-ка вина".
Однако вместо добавления конкретных словоформ можно выполнять неточное распознавание с проверкой схождения только начала строки или внедрить процедуру препарсера, которая будет отбрасывать у названия действия на концах символы "те", "-ка" и "те-ка", превращая множественное число в единственное и вычищая "-ка", тогда можно обойтись указанием только словоформ единственного числа.
Отредактировано Nikita (09.02.2019 20:37)
Неактивен
Nikita написал:
Вообще повелительное наклонение имеет смысл, если платформа поддерживает функциональность управления персонажами,
В тадсе 2 это работает и для управления протагонистом, на других платформах не проверял.
Nikita написал:
В ситуации базового управления и типового повествования от второго лица мы командами в инфинитиве отвечаем на вопрос "что делать?", а не отдаём приказ персонажу, так как персонаж - это мы сами.
Я примерно также думал вначале, но, переспав с этим ночь, решил не загонять игрока в рамки "традиций". Ещё вопрос на сколько игрок готов ассоциировать себя с персонажем, но это тема отдельного топика.
Неактивен
johnbrown написал:
В тадсе 2 это работает и для управления протагонистом, на других платформах не проверял.
Да, в TADS и Inform просто нет разницы, потому что у действия общий список синонимов в разных формах, но причина появления повелительного наклонения именно в наличии функции управления персонажем. У Владимира просто специфический взгляд на этот вопрос сквозь призму натянутых холеварных сравнений с его собственными разработками, так что следующим баг репортом от него будет что-то вроде ошибки на команде "начну, пожалуй, с того, что осмотрю плащ, который на мне".
Неактивен
Поиграл в Фантазию, интересный подход. Сейчас полезу изучать код.
Скажите, а как относитесь к тому, что игрок в любой момент может заглянуть в исходный код JS-игры в браузере и найти все ему нужные подсказки в прохождении. Никак защищать / обфусцировать не пробовали? Теряется элемент хардкорности же.
Неактивен
Парсеры сами по себе хардкор Мысли такие проскальзывали, но, практически, в эту сторону не копал. Я, вообще, за открытость кода. А, кроме того, шифрование, наверняка потребует подключения дополнительных библиотек, чего бы мне не хотелось. Мне нравится идея минималистичности пп.
Неактивен
Я по ошибке не туда написал сообщение.
Но протопарсер тоже рулит! Жду новых игр на нем.
Про инстед, так можно сказать уже. Есть чат боты, Борис Тимофеев пилит стендалон приложение на андроиде... Есть минимальная консольная версия.
Отредактировано gloomy (23.03.2019 18:29)
Неактивен
gloomy написал:
Я по ошибке не туда написал сообщение.
Про инстед, так можно сказать уже. Есть чат боты, Борис Тимофеев пилит стендалон приложение на андроиде...
Ok, разобрался Нет, я имел в виду на js. Типа instead.js только без node. Но, это, наверное, вопрос к Technix.
МП для андроида это интересно. Дашь знать когда выйдет?
Отредактировано johnbrown (23.03.2019 18:34)
Неактивен
Уже оффтопим. .Да, по идее не проблема облегченный js сделать сугубо для мп. Ну нужен человек, кто этим занимается. Сам я такое не умею. Про андроид тут на форуме напишу в ветке с инстедом/мп.
Неактивен
С удивлением узнал, что кто-то пишет на пп, и даже делает патчи (привет Oreolek, Nikita!). Это приятно!
Последние изменения в код я вносил больше года назад. Я планировал включить их в 7 версию. Планов было много, но за время работы над движком интерес к нему постепенно иссякал. Новые вещи перестали быть новыми, старые стали скучными, а повторяться не хочется. Но, мне также не хочется, чтобы наработки для 7 версии пылились где-то в тестовой ветке, поэтому я влил ее в основную. Это следовало сделать еще год назад, но лучше поздно, чем никогда.
ВЕРСИЯ 7
спойлер…
Также хочу дать ссылку на форк Ореолека. В нем он поработал над стилями и сделал отвязку от terminal.js.
Пользуйтесь чем вам больше нравится!
Неактивен
ВЕРСИЯ 8
В новой версии протопарсер получил отвязку от единственной сторонней библиотеки terminal.js, отвечавшей за ввод/вывод. Функционал библиотеки (командная строка, горячие клавиши, история команд и пр.) перенесен в движок.
Упрощена html-разметка в индексном файле, переработан дефолтный стиль оформления. На мобильных и настольных устройствах должно улучшиться отображение.
Полностью переделана система логирования. Теперь по команде лог
и по окончанию игры появляется ссылка на скачивание файла-транскрипта (генерируется локально в браузере пользователя). Полный лог доступен и после очистки экрана.
Добавлен запрос-подтверждение на закрытие окна с игрой (если пользователь совершал какие-либо действия).
Исправлен баг с появлением удаленного предмета при загрузке сохранения.
Добавлена поддержка работы с программами чтения с экрана (автоозвучка). Вообще говоря, я так и не понял как работает эта система. На разных устройствах что-то озвучивалось, что-то нет. Более-менее рабочие результаты удалось получить при использовании NVDA на Windows.
Полный список изменений:
спойлер…
Отредактировано johnbrown (30.08.2022 14:46)
Неактивен