Точно!
Значит, у русских слух в 10 раз совершеннее, чем у британцев.
Ну, аглицкое сравнение написанного с нарисованным как-то больше подходит к ситуации.
Последние несколько вечеров ушли на наведение маломальского порядка с использованием изображений в MoDyz. Исторически сложилось так, что приложение поддерживает работу с тремя вариантами изображений - с растрами, спрайтами и картинками. Самый простой вариант - растры, представляющие собой монохромные изображения размером 16х16 пикселей. Они определены в самом приложении и используются при заливке замкнутых областей (прямоугольников, окружностей и т.п.). Спрайты (для них имеется ограничение по размеру 48х48 пикселей) также используются для заливки замкнутых областей, кроме того, их можно размещать на кнопках, оживляя таким образом формируемое на дисплее изображение, ну и просто выводить в любом месте экрана. Наконец, самые крупные объекты в этом ряду - картинки. Их размер не ограничен ничем, кроме здравого смысла.
Далее - о том, как этими типами можно управлять с микроконтроллера, заливая области экрана.
1. Растры
В приложении имеется набор предопределенных растров, которые можно использовать для двухцветной заливки различных областей экрана. На следующей картинке представлены все 25 имеющихся в распоряжении программиста растров. Нумерация - слева направо и сверху вниз, то есть в первой строке располагаются растры с номерами с 1 по 5, во второй - с номерами с 6 по 10 и так далее.
Для того, чтобы включить заполнение области растром, необходимо отправить на смартфон команду “#FSR<rasterNum>,<factor>,<color>;” (соответствующей ей функции в mdwriter пока нет). Здесь rasterNum - это номер растра от 1 до 25 (если в качестве параметра передать 0, то растровая заливка выключается), factor - коэффициент масштабирования в процентах (все, что меньше 100 - уменьшение, все, что больше - увеличение), color - номер цвета в массиве стандартных цветов, который следует применить при отрисовке растра.
2. Спрайты
Если возможностей, предоставляемых вышеописанными растрами, недостаточно для творческого самовыражения, то можно воспользоваться другим типом изображений, поддерживаемым заливку областей - спрайтами. Спрайты не предопределены в исходных кодах приложения, а загружаются из файлов ресурсов. Их следует размещать в папке “Sprites” каталога, выделенного системой Android для MoDyz (дорожка к нему - “/Android/data/com.stepwood.modyz/files/”). В отличие от растров, спрайты являются многоцветными изображениями, их максимальный размер - 48х48 пикселей.
Для того, чтобы включить заполнение области растром, необходимо отправить выполнить три шага. Перво-наперво - загрузить нужный файл с изображением спрайта (“png”, “jpg”, “ico”) в папку ресурсов “Sprites”. Второй шаг - загрузка файла в оперативную память смартфона с помощью функции loadSprite(<fileName>,<spriteNum>), где fileName - имя загружаемого файла, а spriteNum - присваиваемый загруженному спрайту идентификатор. Наконец, активация одного из загруженных (или единственного загруженного) спрайта производится командой “#FSS<spriteNum>;” (как и команда FSR, она пока не имеет аналога в виде функции).
Эта команда имеет приоритет над командой FSR, то есть, если отправлены обе команды, то будет производиться заливка областей спрайтом, а не растром. До тех пор, пока заливка спрайтом не будет выключена (командой “#FSS0;”)
3. Картинки
В отличие от растров и спрайтов, картинки не заполняют области полностью, а выводятся только один раз по центру области с автоматическим масштабированием таким образом, чтобы картинка заполняла максимум выделенной под нее области. В том направлении, в котором по сторонам картинки остаются пустые участки (в приведенном примере у первой и третьей картинки справа и слева от нее, у второй - сверху и снизу), они заполняются копированием пикселей, расположенных на соответствующей кромке картинки.
Как и в случае спрайта, для заполнения области картинкой необходимо выполнить три шага:
- разместить картинку в папке ресурсов “Images”
- загрузить картинку в оперативную память функцией loadImage(<fileName>,<imageNum>)
- активировать одну из загруженных картинок в качестве заполнителя области (команда “#FSI<imageNum>;”)
Эта команда имеет приоритет над командами FSR, FSS то есть, если отправлена не только она, но и какая-нибудь из этих команд, то будет производиться заливка областей картинкой, а не спрайтом или растром. До тех пор, пока заливка картинкой не будет выключена (командой “#FSI0;”)
Если растры используются только для заливки областей, то для спрайтов и картинок имеется еще ряд команд, но их я представлю немного позднее. М.б. в следующем посте.