ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
19 июля
650971 Топик полностью
Николай Коровин (05.02.2016 02:23, просмотров: 119) ответил LightElf на Посоветуйте лучше "велосипед", типа крайне примитивного HTML-браузера, в мелкий камушек? HTML/XML/SGML/JSON - пофигу. Соответствие стандартам - пофигу. Требуется из описания на каком-то простеньком языке (схемы), картинок, шрифтов и текстовых
Может, завелосипедить что-то типа спрайтового движка? Передаётся тайлсет, потом — кадры. Каждый кадр суть набор того, сколько каких тайлов с какими координатами. Пишется за один творческий порыв, эффективность, правда, хромает: для нормальной передачи текста надо будет укрепить формат кадра такими способами компрессии, как инкрементальные координаты и переменная разрядность номера спрайта. Тогда последовательность спрайтов с малыми номерами (глифов шрифта, ага, как вы догадались?), стоящими друг за другом (строка) по факту и будет передаваться по байту на символ, т. е. по плотности приравняется к тексту. Как и требовалось в условии. Я думаю, надо сделать такой формат: 1) Номера спрайтов сквозные. 640К int32 хватит всем :) 2) Форматы пакетов: «Загрузка спрайта» (содержит номер спрайта, размеры спрайта и тело спрайта). «Выгрузка спрайта» (содержит номер спрайта). «Экран» (содержит набор записей, которые бывают трёх типов. Тип первый — «X, Y, разница между номером спрайта и предыдущим номером, с плавающей разрядностью». Тип второй — «X, Y, -1», означает, что сейчас будет последовательность спрайтов, каждый из которых отстоит от предыдущего на ширину. Тип третий — «разница между номером спрайта и предыдущим номером, с плавающей разрядностью», то есть символ алфавита. Если в итоге диффразницы получился символ «-1», последовательность заканчивается. 3) Спрайты хранятся в памяти подряд. Отдельным массивом лежит лист с парами «номер-указатель», отсортированный по номерам. При получении пакета «загрузка», если последним принятым был пакет «выгрузка», память обязательно дефрагментируется, поэтому следует передавать сперва выгрузки старых, потом загрузки новых, но не вперемешку, чтобы дефраг не тратил время. 4) В случае отсутствия нужного спрайта передаётся обратный пакет «ошибка». Обратных пакетов всего два — «ошибка» с кодом и параметрами и «ОК».