/******************************************************************************/ /* */ /* PACMAN GAME FOR ARDUINO DUE */ /* */ /******************************************************************************/ /* Copyright (c) 2014 Dr. NCX (mirracle.mxx@gmail.com) */ /* */ /* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL */ /* WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED */ /* WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR */ /* BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES */ /* OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, */ /* WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, */ /* ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS */ /* SOFTWARE. */ /* */ /* MIT license, all text above must be included in any redistribution. */ // #include "ili9328.h" typedef uint16_t ushort; #define C16(_rr, _gg, _bb) ((ushort)(((_rr & 0xF8) << 8) | ((_gg & 0xFC) << 3) | ((_bb & 0xF8) >> 3))) uint16_t _paletteW[] = { C16(0, 0, 0), C16(255, 0, 0), // 1 red C16(222, 151, 81), // 2 brown C16(255, 0, 255), // 3 pink C16(0, 0, 0), C16(0, 255, 255), // 5 cyan C16(71, 84, 255), // 6 mid blue C16(255, 184, 81), // 7 lt brown C16(0, 0, 0), C16(255, 255, 0), // 9 yellow C16(0, 0, 0), C16(33, 33, 255), // 11 blue C16(0, 255, 0), // 12 green C16(71, 84, 174), // 13 aqua C16(255, 184, 174), // 14 lt pink C16(222, 222, 255), // 15 whiteish }; void drawIndexedmap(uint8_t* indexmap, int16_t x, uint16_t y) { ui::Painter painter; byte i = 0; word color = (word)_paletteW[indexmap[0]]; for (byte tmpY = 0; tmpY < 8; tmpY++) { byte width = 1; for (byte tmpX = 0; tmpX < 8; tmpX++) { word next_color = (word)_paletteW[indexmap[++i]]; if ((color != next_color && width >= 1) || tmpX == 7) { painter.draw_hline({x + tmpX - width + 1, y + tmpY}, width, ui::Color(color)); color = next_color; width = 0; } width++; } } }