Лидеры
Популярный контент
Показан контент с высокой репутацией 10.09.2020 в Сообщения
-
1 баллOpenPeripheral предоставляет мощный функционал по созданию собственных интерфейсов в виде очков дополненной реальности "Terminal Glasses". К сожалению, полного списка функционала и всех нюансов по работе с этими очками не найти. Присутствуют некоторые отрывки, небольшие видео с результатами работы и прочие поделки. Но! Спустя пару бессонных ночей, декомпилированного кода и трёх литров чая, удалось описать полный функционал этих очков. Основные возможности очков и периферии: Отображение геометрических объектов различной сложности и цветовой гаммы. Отображение текста. Отображение жидкостей и предметов. Взаимодействие с мышью/клавиатурой. Чтение сообщений чата. Специальные команды чата, не отображающиеся в нем. Возможность индивидуальной работы с каждым пользователем терминала. Установка очков в любой шлем. Возможности данных очков я опишу по разделам, в лучших традициях вики Для начала, определю некоторые понятия. Система терминальных очков состоит из трёх предметов: терминала, очков, беспроводной клавиатуры. Терминал является центром всей системы, через него происходит общение между компьютером и очками. Также он хранит все данные интерфейса и пользователей. На очки выводится вся графическая информация, а сами очки передают сообщения или команды чата на терминал. Беспроводная клавиатура позволяет дополнить всю систему, своей возможностью контроля элементов при помощи клавиатуры и мыши. Как выводить информацию на очки: local com = require("component") local opb = com.openperipheral_bridge -- Построение интерфейса происходит во внутреннем буффере терминала (он же мост). local text = opb.addText(10, 10, "", 0xffef7f) -- Создаем компонент "Текст". -- Его нужно создать только один раз, в остальное время можно обращаться по ссылке и изменять любой параметр. local counter = 0 while true do -- В качестве примера будет выводится счетчик секунд. text.setText(tostring(counter)) -- Обновляем текста компонента. opb.sync() -- Для отображения графики на экране, необходимо отправить буффер на очки. os.sleep(1) -- Ждем секунду и прибавляем счетчик. counter = counter+1 end API Перед тем как перейти к API, нужно знать: Color:number -- Число в формате TrueColor RGB (по умолчанию 0xffffff). Opacity:number -- Прозрачность, число от 0.0 до 1.0 (по умолчанию 1). Знак '?' -- Опциональный параметр/функция. События Строковые константы VerticalAlignment:[TOP, MIDDLE, BOTTOM] HorizontalAlignment:[LEFT, MIDDLE, RIGHT] GuiElement:[OVERLAY, PORTAL, HOTBAR, CROSSHAIRS, BOSS_HEALTH, HEALTH, ARMOR, FOOD, MOUNT_HEALTH, AIR, EXPERIENCE, JUMP_BAR, OBJECTIVES] Структуры данных SimpleBox, ColoredPoint, Coord, User Абстрактные объекты Drawable, BoundedShape, Box Графические объекты Управление графическими объектами DrawableFactory, DrawableContainer Управление терминалом Вот такая шпаргалка по очкам, надеюсь пригодится
-
1 баллЯ хочу сразу извиниться за то, что буду дальше писать. Потому что это будет критика и не по коду. Тема оформлена странно. По описанию в первом посте я решительно ничего не понял. Как будто я какую-то книжку начал читать, которая 4 тома неспешно длиться будет. Это меня огорчает: я же вижу, что это какая-то крутая программа. Всё становится логичным, если признать, что истинная цель — это "продать" программу. Заинтересовать читателей. Принципы: всё главное — вверх; что можно делать пикчей — сделать пикчей, не текстом; а текст же делать последовательным и легкодоступным. Дальше я перечислю, что конкретно можно исправить, чтобы офигенной проге сопутствовал офигенный пост. 1. Описание Нет ни одного абзаца, который бы сказал, что делает программа. Абзац это должен быть первый и прямо под картинкой: Идея — это, конечно, интересно, но уже второстепенно. Это не главный контент, потому что ни на какой вопрос читателя не отвечает: автору просто не терпится высказаться, хотя его никто не просил. Умные люди это называют лирическим отступлением. Начинать с него пост не нужно. 2. Список фич Есть пункт "Преимущества". Я скажу прямо: у этой программы конкурентов нет. Соответственно, преимуществ перед кем-то нет тоже. Можно или перечислить фичи, или сказать зачем. В оригинальном посте ближе второй вариант. Тогда назвать пункт своим именем: "Зачем", — и переписать список. Схема каждого пункта: что за фича, запятая (или тире, или двоеточие), комментарий (какая проблема решается). Кратко и ёмко — подробнее можно дальше написать. Пример: Список дополнить, разумеется. 4 пункта не предел. 3. Минимальные требования Пункт можно переименовать в "Железо". Это короче и удобоваримее. И ради кода, делайте требования картинкой. Это в пятьсот раз нагляднее, чем список. Уже ведь даже майнкрафт не нужен для пикч: в десктопном оцелоте можно склеить пикчи. У форума уродские инструменты форматирования, но таблицы вставлять он умеет. Откроем редактор HTML, пропишем: <html> <head> <meta charset="utf-8"> </head> <body> <table> <thead> <tr> <th>Клиент</th> <th>Сервер</th> </tr> </thead> <tbody> <tr> <td><img src="..." alt="Клиентская сборка"></td> <td><img src="..." alt="Серверная сборка"></td> </tr> </tbody> </table> </body> </html> Копипастим, вставляем в адресную строку, в начало добавляем data:text/html,, жмём Enter. Ctrl-A, Ctrl-C и копируем сюда. В разы же лучше. Под таблицей написать, что вместо сетевых карт можно юзать туннельные. 4. Команды Команды надо выделять. Или курсивом, или в блок кода, или вот так, но не плейнтекстом. Особенно команды с кучей аргументов. 5. Использование Это же не просто библиотека. Инструкция по использованию — это полезно, но опять второстепенно. Нужен новый пункт, назвать "Практика". Здесь можно сделать короткое и ёмкое видео (скорее всего, придётся кадрировать, снимать в несколько дублей). План сценария: Надпись "Установка". Запускаем сервер, ставим программу. Собираем биос. Открываем гуи ассемблера, в котором уже выложен рецепт дрона. Пихаем биос. Жмём по кнопке, получаем результат (делать в креативе, чтоб не ждать). Включаем дрона и запускаем что-нибудь цветастое. Например, мерцанием лампой дрона под такт музяке. Или что-нибудь ещё. По тому же принципу продемонстрировать фичи. Звук, в том числе голос, необязателен. Если видео не хочется делать, то переписать инструкции. Вернее, дополнить их примерами. Разберём один пункт. Не знаю, как вам, а я ничего так и не понял. А теперь следите за руками: У меня вопросов больше не осталось. В том же духе переделать остальные пункты инструкций и сделать их полезными для людей. 6. Слишком мелкие придирки, чтобы выделять на каждую по пункту По-русски logging лучше назвать логированием. Или просто логами. Перед открывающей скобкой ставить пробел (вот так). Сделать форматирование команд однородным. Сейчас там где-то цвет особый, где-то курсив, а где-то ни того, ни другого. Хотя семантически элементы не отличаются. Причастие прошедшего времени глагола read пишется так же. @Fingercomp reads manuals. — Yesterday I read manuals. — The manual was read. 7. Что в топике хорошо Чтобы закончить пост, укажу, что в топике сделано добротно. Пикча в начале. Самое главное — странная пикча в начале. Это интереснее. Принцип работы умещён в информативную картинку. Дополнительный текст не потребовался. Есть ссылка на код. Во многих постах авторы ограничиваются командой загрузки. Мне интересно почитать и сырцы. Охрененная идея, которая побудила меня писать это. 8. Живой пример Я писал этот пост для Cyan на oc.cil.li: https://oc.cil.li/topic/2350-cyan-bios/. Там люди очень скупы на лайки, а здесь их целых 3. Оформление оказалось очень важным. 9. Почему я написал пост здесь, а не стукнул автору в ЛС Принципы здесь применимы не только к HoverHelm. На форуме программки страдают от ужасной подачи материала. Но здесь я не смог сдержать чувство справедливости: не должна отличная программа быть преподнесена так, чтобы отпугивать читателя. Если же этот пост покажется оффтопом, прошу модераторов перетащить пост в мой блог. Я дальше сам поправлю контекст.
Эта таблица лидеров рассчитана в Москва/GMT+03:00
