Как стать автором
Обновить

Комментарии 13

НЛО прилетело и опубликовало эту надпись здесь
Экран принимает цвета 16 бит на пиксель, т.е. мы рисуем картинки в RGB565.

Не было мыслей хранить изображения с уменьшенной цветовой палитрой (16-256 цветов на пиксель)?
В соответствии с 63-й станицей datasheet-а от ILITEK в режиме 4-line SPI минимальным является режим «-65k colors, RGB 5, 6, 5 -bits input (16 bit/pixel color order (R:5-bit, G:6-bit, B:5-bit))».

Если я правильно понимаю datasheet, то драйвер дисплея принимает все три цвета для пиксела в 16 бит.
Иными словами, даже если использовать уменьшенную цветовую палитру необходимо будет ее приводить как минимум в соответствие к системе RGB565. Это неоспоримо даст выигрыш в занимаемом объеме, но может ли снизить производительность на преобразованиях – без тестов сказать не могу.

Если сможете сказать, как сделать иначе, буду премного благодарен.
Я предполагал именно конвертирование палитры на лету, по возможности с использованием таблицы.
Что-то с отрисовкой спрайтов не то: котэ не плавно перемещается, к тому же еще и с пропаданием(
Когда происходит смена координат положения, по старым координатам он стирается посредством наложения поверх него прямоугольника с цветом фона, и появляется заново уже по новым координатам, что само собой требует время.

Плавность перемещения превосходная идея! Это увеличит сложность игры, т.к. игроку будет необходимо учитывать наличие снарядов противника на пути перемещения, чтобы их не задеть.

Для защиты от остановки всей игры на момент перемещения, нужно будет вводить еще одну задачу, в которой перемещать на N пикселей + или — от текущей координаты с шагом X. Частоту отрисовки придется увеличить, для соответствия шагу Х. Еще будет необходима очистка предыдущей части изображения кота, равной шагу Х. Все это может негативно сказаться на производительности (не беда в случае не AVR). Возможно, поэтому когда-то отказался от этого.
Как дети малые. Вокруг спрайта делается рамка цветом фона. При выводе рамка затирает мусор от старого спрайта
А на экране выбора сложности у кота 2 хвоста из-за того, что экран не очищается перед перерисовкой.
Очень круто. Особенно радует тот момент, что автор довел проект до законченного играбельного состояния, а не «посмортите, у меня котэ на ардуине летает».
Хорошая работа!
Интересная самоделка :) есть 2 вопроса:
1. Не было мысли разобраться в datasheet-е экрана и самому сваять драйвер? Если хорошо продумать, что требуется от него для конкретной задачи, своя реализация может быть более оптимальной как по скорости, так и по количеству кода на флеше. Я так некоторые математические функции сам писал, когда подключение библиотеки увеличивало размер прошивки с 15% до 60%, что меня крайне не устраивало.
2. Никогда не появлялась идея сделать на Atmel эмулятор, например, системы команд ZX Spectrum? Когда-то я просчитывал, что 16 МГц кристалле (например, ATmega16) сможет без тормозов эмулировать спектрумовскую систему команд на оригинальной скорости, даже при доступе ко внешней памяти (на что иногда тратится значительное количество тактов атмеги). Правда реализовать так и не успел — времени не хватило. Но в качестве хобби, конечно, можно будет достать эту идею из долгого ящика :)
Шикарно! Автор молодец. Сразу вспомнилась «Электроника ИМ-02». Жаль сейчас такого не встретишь — одно устройство, одна игра. Себестоимость в производстве была бы не большая, но с современными технологиями можно было бы выпускать действительно классные карманные игры.
'tftFillRect' was not declared in this scope — вроде и библиотеки установил. Версия arduino 1.0.6
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации