【搬运】基于Atom的反应测试游戏-Arduino中文社区 - Powered by Discuz! Archiver

vany5921 发表于 2020-4-7 15:02

【搬运】基于Atom的反应测试游戏

M5Atom的一个非常简单的游戏。内部IMU传感器用于检测倾斜。如果显示器显示的红色像素多于绿色像素,则设备必须向右倾斜。如果有更多的绿色像素,则该单元必须向左倾斜。
这个游戏有十二个关卡。在每一个级别上,区分屏幕上是有更多的红色像素还是更多的绿色像素变得更加困难。根据是否显示更多的红色或绿色像素,将单元向右或向左倾斜,听起来很简单,但思考时间很短。时间,像素显示的时间,变得越来越短。为了更分散玩家的注意力,在更高的层次上添加了黑白像素。准确率高于75%解锁下一关


//倾斜角度的测量原则上非常简单,但为了正确评估结果,必须对信号进行滤波。取15次测量结果的平均值是一个不错的方法。
// get the acceleration data
// accX = right pointing vector
//      tilt to the right: > 0
//      tilt to the left:< 0
// accy = backward pointing vector
//      tilt forward:< 0
//      tilt backward: > 0
// accZ = upward pointing vector
//      flat orientation: -1g
float accX = 0, accY = 0, accZ = 0;
M5.IMU.getAccelData(&accX, &accY, &accZ);
// Average the acceleration data
// simple "running average" method without storng the data in an array
accX_avg = ((accX_avg * (n_average-1))+accX)/n_average;
accY_avg = ((accY_avg * (n_average-1))+accY)/n_average;
accZ_avg = ((accZ_avg * (n_average-1))+accZ)/n_average;


不同的级别存储在一个数组中。在这个数组中,密度是编码的,应该显示多少红色、绿色、黑色或白色像素。然后,显示例程以随机顺序用相应的颜色密度填充显示。在loop()例程中实现了一个小型状态机:


主程序:

/**************************************************************************
* M5Stack ATOM Matrix Tilt Game
*
* A simple game for the matrix version of the M5Stack ATOM.
* Red and green LEDs are shown on the display.
* If more red LEDs are shown, the device must be tilted to the right.
* If more green LEDs are shown, to the left.
* There are twelve difficulty levels in which the number of red and green
* LEDs differs less and less and the display time becomes shorter and shorter.
* If a level is completed with more than 75% correct answers (>18 of 25),
* the next level is unlocked.
*
* Hague Nusseck @ electricidea
* v1.2 | 02.April.2020
* https://github.com/electricidea/xxx
*
*
*
* Distributed as-is; no warranty is given.
**************************************************************************/

#include <Arduino.h>

#include "M5Atom.h"
// install the library:
// pio lib install "M5Atom"

// You also need the FastLED library
// https://platformio.org/lib/show/126/FastLED
// FastLED is a library for programming addressable rgb led strips
// (APA102/Dotstar, WS2812/Neopixel, LPD8806, and a dozen others)
// acting both as a driver and as a library for color management and fast math.
// install the library:
// pio lib install "FastLED"

float accX_avg = 0, accY_avg = 0, accZ_avg = 0;
int n_average = 15;
bool IMU_ready = false;

// Display Buffer for the 5x5 RGB LED Matrix
// the first two elements are the size (5 rows and 5 coulums)
// then for every pixel three bytes for red, green and blue
uint8_t Display_Buffer;

// predefined display buffers to display some characters and numbers
#include "characters.c"

// Define own colors
// NOTE: The brightness of RGB LED is limited to 20 (global brightness scaling).
// DO NOT set it higher to avoid damaging the LED and acrylic screen.
#define cBLACK 0
#define cRED 1
#define cGREEN 2
#define cBLUE 3
#define cWHITE 4
#define cCYAN 5
#define cYELLOW 6
#define cMAGENTA 7
const uint8_t RGB_colors = {{0x00, 0x00, 0x00},
                                  {0xF0, 0x00, 0x00},
                                  {0x00, 0xF0, 0x00},
                                  {0x00, 0x00, 0xF0},
                                  {0x70, 0x70, 0x70},
                                  {0x00, 0x70, 0x70},
                                  {0x70, 0x70, 0x00},
                                  {0x70, 0x00, 0x70}};
uint8_t display_color = cBLACK;
uint8_t goal_color = cBLACK;
uint8_t false_color = cBLACK;

// timer to switch the display to black
unsigned long display_off_millis;

// timer for the reaction time
unsigned long response_until_time;

// timer for wait a while
unsigned long wait_millis;

// game state machine states
#define s_START 1
#define s_WAIT_FLAT 2
#define s_SHOW_COLOR 3
#define s_WAIT_TILT 4
#define s_SHOW_RESULT 5
#define s_WAIT 6
#define s_SHOW_FINAL 7
#define s_GAME_FINISH 8
int game_state = s_START;

#define CENTER 0
#define LEFT 1
#define RIGHT 2
// if the device was tilted to the left or to the right
int tilt_move = CENTER;
// score reached within each level
int score = 0;
// game difficulty level
int game_level = 1;

// the difficulty of each level is coded in an array:
// 1 = correct color
// 2 = false color
// 3 = black pixel
// 4 = white pixel
const int board_levels = {{1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 2,2,2,2,2, 2,2,2,2,2}, // 0 (L1a)
                                  {2,2,2,2,2, 2,2,2,2,2, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1}, // 1 (L1b)
                                  {1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,2,2,2, 2,2,2,2,2}, // L2
                                  {1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 2,2,2,2,2, 2,2,2,2,2}, // L3
                                  {1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,2, 2,2,2,2,2, 2,2,2,2,2}, // L4
                                  {1,1,1,1,1, 1,1,1,1,1, 1,1,1,2,2, 2,2,2,2,2, 2,2,2,2,2}, // L5
                                  {3,3,3,3,3, 1,1,1,1,1, 1,1,1,1,1, 2,2,2,2,2, 3,3,3,3,3}, // L6
                                  {3,3,3,3,3, 3,1,1,1,1, 1,1,1,2,2, 2,2,2,2,3, 3,3,3,3,3}, // L7
                                  {3,3,3,3,3, 3,3,3,1,1, 1,1,1,2,2, 2,2,3,3,3, 3,3,3,3,3}, // L8
                                  {3,3,3,3,3, 4,4,4,1,1, 1,1,1,2,2, 2,2,4,4,4, 3,3,3,3,3}, // L9
                                  {3,3,3,3,3, 4,4,4,4,1, 1,1,1,2,2, 2,4,4,4,4, 3,3,3,3,3}, // L10
                                  {4,4,4,4,4, 3,3,3,1,1, 1,1,1,2,2, 2,2,3,3,3, 4,4,4,4,4}, // L11
                                  {4,4,4,4,4, 4,4,4,4,1, 1,1,1,2,2, 2,4,4,4,4, 4,4,4,4,4}, // L12
                                 };
// the board for the actual move is filed with the data corresponding to the level
int board;
int board_index;
// For each level, the time, how long the board is visible (in ms)
int level_display_time = {-1, 350, 300, 250, 200, 200, 150, 100, 50, 40, 30, 20, 10};
// For each level there is a separate reaction time requirement (in ms)
int level_reaction_time = {-1, 1500, 1250, 1000, 900, 800, 700, 600, 500, 400, 350, 350, 350};

// A buffer to hold the result of each game
// withing one level (each level contains 25 turns)
uint8_t Result_Buffer;
int move_count = 0;

//==============================================================
// fill the display buffer with a solid color and diplay the buffer
// "color" is the index to the RGB_colors array
void fillScreen(uint8_t color){
    Display_Buffer = 0x05;
    Display_Buffer = 0x05;
    for (int i = 0; i < 25; i++){
      Display_Buffer = RGB_colors;
      Display_Buffer = RGB_colors;
      Display_Buffer = RGB_colors;
    }
    M5.dis.displaybuff(Display_Buffer);
}

//==============================================================
// function to display a number on the LED Matrix screen
// the characters are defined in the fiel "characters.c"
void display_number(uint8_t number){
// only single digit numbers between 0 and 9 are possible.
if(number < 20){
    M5.dis.displaybuff((uint8_t *)image_numbers);
} else {
    M5.dis.displaybuff((uint8_t *)image_dot);
}
}

//==============================================================
// function to display an animated star on the LED Matrix screen
void display_star(){
for(int i=0; i<2; i++){
    for(int n=0; n<10; n++){
      M5.dis.displaybuff((uint8_t *)image_star);
      delay(100);
    }
}
}

//==============================================================
// function to display an animated line on the LED Matrix screen
void display_line(){
for(int i=0; i<2; i++){
    M5.dis.displaybuff((uint8_t *)image_line);
    delay(500);
    M5.dis.displaybuff((uint8_t *)image_left);
    delay(500);
    M5.dis.displaybuff((uint8_t *)image_line);
    delay(500);
    M5.dis.displaybuff((uint8_t *)image_right);
    delay(500);
}
M5.dis.displaybuff((uint8_t *)image_line);
delay(500);
}

void setup(){
    // start the ATOM device with serial and Display
    // begin(SerialEnable, I2CEnable, DisplayEnable)
    M5.begin(true, false, true);
    delay(50);
    Serial.println("M5ATOM Tilt-Game");
    Serial.println("v1.2 | 02.04.2020");
    // Show startup animation
    display_line();
    Serial.println("");
    Serial.println("INIT IMU");
    // check if IMU is ready
    if (M5.IMU.Init() == 0){
      IMU_ready = true;
      Serial.println(" INIT ready");
      M5.dis.displaybuff((uint8_t *)image_CORRECT);
    } else {
      IMU_ready = false;
      Serial.println(" IMU INIT failed!");
      M5.dis.displaybuff((uint8_t *)image_WRONG);
    }
    delay(1000);
    display_off_millis = millis()+1000;
}

void loop(){
// if display_off time is reached, switch the display to black
if(millis() > display_off_millis){
    fillScreen(cBLACK);
}
// get the acceleration data
// accX = right pointing vector
//      tilt to the right: > 0
//      tilt to the left:< 0
// accy = backward pointing vector
//      tilt forward:< 0
//      tilt backward: > 0
// accZ = upward pointing vector
//      flat orientation: -1g
float accX = 0, accY = 0, accZ = 0;
M5.IMU.getAccelData(&accX, &accY, &accZ);
// Average the acceleration data
// simple "running average" method without storng the data in an array
accX_avg = ((accX_avg * (n_average-1))+accX)/n_average;
accY_avg = ((accY_avg * (n_average-1))+accY)/n_average;
accZ_avg = ((accZ_avg * (n_average-1))+accZ)/n_average;

// State machine for the game states
switch (game_state){
    // Start a game level
    case s_START:
      // start after Button was pressed
      if (M5.Btn.wasPressed()){
      // reset the score for this level
      score = 0;
      move_count = 0;
      // display the actual level
      M5.dis.displaybuff((uint8_t *)image_L);
      delay(1000);
      display_number(game_level);
      delay(1000);
      fillScreen(cBLACK);
      delay(1000);
      // blink a dot 3 times as a count down
      for(int n=0; n<3; n++){
          M5.dis.displaybuff((uint8_t *)image_dot);
          delay(500);
          fillScreen(cBLACK);
          delay(500);
      }
      fillScreen(cBLACK);
      game_state = s_WAIT_FLAT;
      }
      break;

    // Wait until the device is held flat
    case s_WAIT_FLAT:
      if(accZ_avg < 0.7 && abs(accX_avg) < 0.3){ // 0.3g = 27deg tilt angle
      wait_millis = millis()+1000;
      game_state = s_WAIT;
      }
      break;

    // just wait a while
    case s_WAIT:
      if(millis() > wait_millis){
      game_state = s_SHOW_COLOR;
      }
      break;

    // Show the level colors
    // randomly more red or more green pixel
    case s_SHOW_COLOR:
      // red or green?
      // 50/50 red or green
      if(random(1, 3) == 1){ // numbers between 1 and 2
      goal_color = cRED;
      false_color = cGREEN;
      } else {
      goal_color = cGREEN;
      false_color = cRED;
      }
      if(game_level == 1){
      // the first 10 moves = Simple full screen color
      // the first 4 moves always: RED, GREEN, RED, GREEN
      if(move_count < 10){
          if(move_count == 0 || move_count == 2){
            goal_color = cRED;
            false_color = cGREEN;
          }
          if(move_count == 1 || move_count == 3){
            goal_color = cGREEN;
            false_color = cRED;
          }
          fillScreen(goal_color);
      } else {
          // the next moves = = divied in top and bottom
          // fill the board with the level based information
          // 50/50 top or bottom
          if(random(1, 3) == 1){
            for(int i=0; i<25; i++){
            board = board_levels;
            }
          } else {
            for(int i=0; i<25; i++){
            board = board_levels;
            }
          }
          // fill the display buffer related to the board array
          Display_Buffer = 0x05;
          Display_Buffer = 0x05;
          for(int i=0; i<25; i++){
            if(board == 1)
            display_color = goal_color;
            else
            display_color = false_color;
            Display_Buffer = RGB_colors;
            Display_Buffer = RGB_colors;
            Display_Buffer = RGB_colors;
          }
          // show the resulting display buffer
          M5.dis.displaybuff(Display_Buffer);
      }
      } else {
      // level higher than 1
      // random Dots based on the level difficulty information
      // fill the board with the level based information
      for(int i=0; i<25; i++){
          board = board_levels;
      }
      // fill the display buffer
      Display_Buffer = 0x05;
      Display_Buffer = 0x05;
      for(int i=0; i<25; i++){
          // select randomly a "non used" field out of the board array
          // "non used" field are the ones with numbers higher than 0
          do{
            board_index = random(0, 25);
          } while (board == 0);
          // set the corresponding color
          display_color = false_color;
          if(board == 1)
            display_color = goal_color;
          if(board == 3)
            display_color = cBLACK;
          if(board == 4)
            display_color = cWHITE;
          // mark the field as "used"
          board = 0;
          // write the color in the display buffer
          Display_Buffer = RGB_colors;
          Display_Buffer = RGB_colors;
          Display_Buffer = RGB_colors;
      }
      // show the resulting display buffer
      M5.dis.displaybuff(Display_Buffer);
      }
      // The time, how long the board is visible, depends on the level
      display_off_millis = millis()+level_display_time;
      response_until_time = millis()+level_reaction_time;
      game_state = s_WAIT_TILT;
      break;

    // Wait until the device was tilted to the left or to the right
    case s_WAIT_TILT:
      // if response time limit is reached, switch to the RESULT state
      if(millis() > response_until_time){
      M5.dis.displaybuff((uint8_t *)image_O);
      delay(500);
      fillScreen(cBLACK);
      game_state = s_SHOW_RESULT;
      } else{
      // otherwise check if the device is tilted
      if(abs(accX_avg) > 0.5){ // 0.5g = 45deg tilt angle
          if(accX_avg < -0.5){
            tilt_move = LEFT;
          }
          if(accX_avg > 0.5){
            tilt_move = RIGHT;
          }
          if(tilt_move != CENTER){
            game_state = s_SHOW_RESULT;
            response_until_time = 0;
          }
      }   
      }
      break;

    // Analyse the response and show the result
    case s_SHOW_RESULT:
      response_until_time = 0;
      // correct response?
      if((goal_color == cRED && tilt_move == RIGHT) || (goal_color == cGREEN && tilt_move == LEFT)){
      M5.dis.displaybuff((uint8_t *)image_CORRECT);
      score++;
      Result_Buffer = cGREEN;
      } else {
      // or tilted the wrong way?
      // reaction to slow?
      if(tilt_move != CENTER)
          M5.dis.displaybuff((uint8_t *)image_WRONG);
      Result_Buffer = cRED;
      }
      display_off_millis = millis()+500;
      tilt_move = CENTER;
      move_count++;
      // each level contains 25 moves
      // if level is done, show the level result
      if(move_count == 25){
      delay(1000);
      game_state = s_SHOW_FINAL;
      } else {
      game_state = s_WAIT_FLAT;
      }
      break;

    // Show the result of the actual level
    case s_SHOW_FINAL:
      Serial.printf("Level finished. Score: %i/25\r\n", score);
      // if more than 75% correct answers, enable the next level
      // 18 out of 25 = 72%
      // 19 out of 25 = 76%
      if(score > 18){
      game_level++;
      Serial.println(" Next level");
      display_star();
      } else {
      // next level not reached
      for(int n=0; n<4; n++){
          M5.dis.displaybuff((uint8_t *)image_sad);
          delay(500);
          fillScreen(cBLACK);
          delay(500);
      }
      }
      // fill the display buffer with the 25 answers
      Display_Buffer = 0x05;
      Display_Buffer = 0x05;
      for(int i=0; i<25; i++){
      Display_Buffer = RGB_colors];
      Display_Buffer = RGB_colors];
      Display_Buffer = RGB_colors];
      }
      // show the result for 5 seconds
      M5.dis.displaybuff(Display_Buffer);
      display_off_millis = millis()+2500;
      if(game_level < 13)
      game_state = s_START;
      else
      game_state = s_GAME_FINISH;
      break;

    // Game finished! All level passed!
    case s_GAME_FINISH:
      M5.dis.displaybuff((uint8_t *)image_CORRECT);
      delay(1000);
      fillScreen(cBLACK);
      delay(1000);
      break;

    // should never reached...
    default:
      break;
}

delay(5);
M5.update();
}

图形文件:
// characters.c
// predefined display buffer to display some characters
// created with ATOM PIXEL TOOL
// https://github.com/m5stack/M5Atom


// Image Size: width=5,height=5
// DataSize: 77
const unsigned char image_CORRECT=
{
/* width005 */ 0x05,
/* height 005 */ 0x05,
/* Line   000 */ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, //
/* Line   001 */ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0xff,0x00, //
/* Line   002 */ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0xff,0x00, 0x00,0x00,0x00, //
/* Line   003 */ 0x00,0xff,0x00, 0x00,0x00,0x00, 0x00,0xff,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, //
/* Line   004 */ 0x00,0x00,0x00, 0x00,0xff,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, //
};
const unsigned char image_WRONG=
{
/* width005 */ 0x05,
/* height 005 */ 0x05,
/* Line   000 */ 0xff,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0x00,0x00, //
/* Line   001 */ 0x00,0x00,0x00, 0xff,0x00,0x00, 0x00,0x00,0x00, 0xff,0x00,0x00, 0x00,0x00,0x00, //
/* Line   002 */ 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, //
/* Line   003 */ 0x00,0x00,0x00, 0xff,0x00,0x00, 0x00,0x00,0x00, 0xff,0x00,0x00, 0x00,0x00,0x00, //
/* Line   004 */ 0xff,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0x00,0x00, //
};
const unsigned char image_L=
{
/* width005 */ 0x05,
/* height 005 */ 0x05,
/* Line   000 */ 0x00,0x00,0x00, 0xff,0x00,0xff, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, //
/* Line   001 */ 0x00,0x00,0x00, 0xff,0x00,0xff, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, //
/* Line   002 */ 0x00,0x00,0x00, 0xff,0x00,0xff, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, //
/* Line   003 */ 0x00,0x00,0x00, 0xff,0x00,0xff, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, //
/* Line   004 */ 0x00,0x00,0x00, 0xff,0x00,0xff, 0xff,0x00,0xff, 0xff,0x00,0xff, 0x00,0x00,0x00, //
};
const unsigned char image_dot=
{
/* width005 */ 0x05,
/* height 005 */ 0x05,
/* Line   000 */ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, //
/* Line   001 */ 0x00,0x00,0x00, 0xff,0x00,0xff, 0xff,0x00,0xff, 0xff,0x00,0xff, 0x00,0x00,0x00, //
/* Line   002 */ 0x00,0x00,0x00, 0xff,0x00,0xff, 0xff,0x00,0xff, 0xff,0x00,0xff, 0x00,0x00,0x00, //
/* Line   003 */ 0x00,0x00,0x00, 0xff,0x00,0xff, 0xff,0x00,0xff, 0xff,0x00,0xff, 0x00,0x00,0x00, //
/* Line   004 */ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, //
};

const unsigned char image_numbers={
{0x05,0x05, // 0
/* Line   000 */ 0x00,0x00,0x00, 0xff,0x00,0xff, 0xff,0x00,0xff, 0xff,0x00,0xff, 0x00,0x00,0x00, //
/* Line   001 */ 0x00,0x00,0x00, 0xff,0x00,0xff, 0x00,0x00,0x00, 0xff,0x00,0xff, 0x00,0x00,0x00, //
/* Line   002 */ 0x00,0x00,0x00, 0xff,0x00,0xff, 0x00,0x00,0x00, 0xff,0x00,0xff, 0x00,0x00,0x00, //
/* Line   003 */ 0x00,0x00,0x00, 0xff,0x00,0xff, 0x00,0x00,0x00, 0xff,0x00,0xff, 0x00,0x00,0x00, //
/* Line   004 */ 0x00,0x00,0x00, 0xff,0x00,0xff, 0xff,0x00,0xff, 0xff,0x00,0xff, 0x00,0x00,0x00, //
},
{0x05,0x05, // 1
/* Line   000 */ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0x00,0xff, 0x00,0x00,0x00, //
/* Line   001 */ 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0x00,0xff, 0xff,0x00,0xff, 0x00,0x00,0x00, //
/* Line   002 */ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0x00,0xff, 0x00,0x00,0x00, //
/* Line   003 */ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0x00,0xff, 0x00,0x00,0x00, //
/* Line   004 */ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0x00,0xff, 0x00,0x00,0x00, //
},
{0x05,0x05, // 2
/* Line   000 */ 0x00,0x00,0x00, 0xff,0x00,0xff, 0xff,0x00,0xff, 0xff,0x00,0xff, 0x00,0x00,0x00, //
/* Line   001 */ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0x00,0xff, 0x00,0x00,0x00, //
/* Line   002 */ 0x00,0x00,0x00, 0xff,0x00,0xff, 0xff,0x00,0xff, 0xff,0x00,0xff, 0x00,0x00,0x00, //
/* Line   003 */ 0x00,0x00,0x00, 0xff,0x00,0xff, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, //
/* Line   004 */ 0x00,0x00,0x00, 0xff,0x00,0xff, 0xff,0x00,0xff, 0xff,0x00,0xff, 0x00,0x00,0x00, //
},
{0x05,0x05, // 3
/* Line   000 */ 0x00,0x00,0x00, 0xff,0x00,0xff, 0xff,0x00,0xff, 0xff,0x00,0xff, 0x00,0x00,0x00, //
/* Line   001 */ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0x00,0xff, 0x00,0x00,0x00, //
/* Line   002 */ 0x00,0x00,0x00, 0xff,0x00,0xff, 0xff,0x00,0xff, 0xff,0x00,0xff, 0x00,0x00,0x00, //
/* Line   003 */ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0x00,0xff, 0x00,0x00,0x00, //
/* Line   004 */ 0x00,0x00,0x00, 0xff,0x00,0xff, 0xff,0x00,0xff, 0xff,0x00,0xff, 0x00,0x00,0x00, //
},
{0x05,0x05, // 4
/* Line   000 */ 0x00,0x00,0x00, 0xff,0x00,0xff, 0x00,0x00,0x00, 0xff,0x00,0xff, 0x00,0x00,0x00, //
/* Line   001 */ 0x00,0x00,0x00, 0xff,0x00,0xff, 0x00,0x00,0x00, 0xff,0x00,0xff, 0x00,0x00,0x00, //
/* Line   002 */ 0x00,0x00,0x00, 0xff,0x00,0xff, 0xff,0x00,0xff, 0xff,0x00,0xff, 0x00,0x00,0x00, //
/* Line   003 */ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0x00,0xff, 0x00,0x00,0x00, //
/* Line   004 */ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0x00,0xff, 0x00,0x00,0x00, //
},
{0x05,0x05, // 5
/* Line   000 */ 0x00,0x00,0x00, 0xff,0x00,0xff, 0xff,0x00,0xff, 0xff,0x00,0xff, 0x00,0x00,0x00, //
/* Line   001 */ 0x00,0x00,0x00, 0xff,0x00,0xff, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, //
/* Line   002 */ 0x00,0x00,0x00, 0xff,0x00,0xff, 0xff,0x00,0xff, 0xff,0x00,0xff, 0x00,0x00,0x00, //
/* Line   003 */ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0x00,0xff, 0x00,0x00,0x00, //
/* Line   004 */ 0x00,0x00,0x00, 0xff,0x00,0xff, 0xff,0x00,0xff, 0xff,0x00,0xff, 0x00,0x00,0x00, //
},
{0x05,0x05, // 6
/* Line   000 */ 0x00,0x00,0x00, 0xff,0x00,0xff, 0xff,0x00,0xff, 0xff,0x00,0xff, 0x00,0x00,0x00, //
/* Line   001 */ 0x00,0x00,0x00, 0xff,0x00,0xff, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, //
/* Line   002 */ 0x00,0x00,0x00, 0xff,0x00,0xff, 0xff,0x00,0xff, 0xff,0x00,0xff, 0x00,0x00,0x00, //
/* Line   003 */ 0x00,0x00,0x00, 0xff,0x00,0xff, 0x00,0x00,0x00, 0xff,0x00,0xff, 0x00,0x00,0x00, //
/* Line   004 */ 0x00,0x00,0x00, 0xff,0x00,0xff, 0xff,0x00,0xff, 0xff,0x00,0xff, 0x00,0x00,0x00, //
},
{0x05,0x05, // 7
/* Line   000 */ 0x00,0x00,0x00, 0xff,0x00,0xff, 0xff,0x00,0xff, 0xff,0x00,0xff, 0x00,0x00,0x00, //
/* Line   001 */ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0x00,0xff, 0x00,0x00,0x00, //
/* Line   002 */ 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0x00,0xff, 0x00,0x00,0x00, 0x00,0x00,0x00, //
/* Line   003 */ 0x00,0x00,0x00, 0xff,0x00,0xff, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, //
/* Line   004 */ 0x00,0x00,0x00, 0xff,0x00,0xff, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, //
},
{0x05,0x05, // 8
/* Line   000 */ 0x00,0x00,0x00, 0xff,0x00,0xff, 0xff,0x00,0xff, 0xff,0x00,0xff, 0x00,0x00,0x00, //
/* Line   001 */ 0x00,0x00,0x00, 0xff,0x00,0xff, 0x00,0x00,0x00, 0xff,0x00,0xff, 0x00,0x00,0x00, //
/* Line   002 */ 0x00,0x00,0x00, 0xff,0x00,0xff, 0xff,0x00,0xff, 0xff,0x00,0xff, 0x00,0x00,0x00, //
/* Line   003 */ 0x00,0x00,0x00, 0xff,0x00,0xff, 0x00,0x00,0x00, 0xff,0x00,0xff, 0x00,0x00,0x00, //
/* Line   004 */ 0x00,0x00,0x00, 0xff,0x00,0xff, 0xff,0x00,0xff, 0xff,0x00,0xff, 0x00,0x00,0x00, //
},
{0x05,0x05, // 9
/* Line   000 */ 0x00,0x00,0x00, 0xff,0x00,0xff, 0xff,0x00,0xff, 0xff,0x00,0xff, 0x00,0x00,0x00, //
/* Line   001 */ 0x00,0x00,0x00, 0xff,0x00,0xff, 0x00,0x00,0x00, 0xff,0x00,0xff, 0x00,0x00,0x00, //
/* Line   002 */ 0x00,0x00,0x00, 0xff,0x00,0xff, 0xff,0x00,0xff, 0xff,0x00,0xff, 0x00,0x00,0x00, //
/* Line   003 */ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0x00,0xff, 0x00,0x00,0x00, //
/* Line   004 */ 0x00,0x00,0x00, 0xff,0x00,0xff, 0xff,0x00,0xff, 0xff,0x00,0xff, 0x00,0x00,0x00, //
},
{0x05,0x05, // 10
/* Line   000 */ 0xff,0x00,0xff, 0x00,0x00,0x00, 0xff,0x00,0xff, 0xff,0x00,0xff, 0xff,0x00,0xff, //
/* Line   001 */ 0xff,0x00,0xff, 0x00,0x00,0x00, 0xff,0x00,0xff, 0x00,0x00,0x00, 0xff,0x00,0xff, //
/* Line   002 */ 0xff,0x00,0xff, 0x00,0x00,0x00, 0xff,0x00,0xff, 0x00,0x00,0x00, 0xff,0x00,0xff, //
/* Line   003 */ 0xff,0x00,0xff, 0x00,0x00,0x00, 0xff,0x00,0xff, 0x00,0x00,0x00, 0xff,0x00,0xff, //
/* Line   004 */ 0xff,0x00,0xff, 0x00,0x00,0x00, 0xff,0x00,0xff, 0xff,0x00,0xff, 0xff,0x00,0xff, //
},
{0x05,0x05, // 11
/* Line   000 */ 0x00,0x00,0x00, 0xff,0x00,0xff, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0x00,0xff, //
/* Line   001 */ 0xff,0x00,0xff, 0xff,0x00,0xff, 0x00,0x00,0x00, 0xff,0x00,0xff, 0xff,0x00,0xff, //
/* Line   002 */ 0x00,0x00,0x00, 0xff,0x00,0xff, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0x00,0xff, //
/* Line   003 */ 0x00,0x00,0x00, 0xff,0x00,0xff, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0x00,0xff, //
/* Line   004 */ 0x00,0x00,0x00, 0xff,0x00,0xff, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0x00,0xff, //
},
{0x05,0x05, // 12
/* Line   000 */ 0xff,0x00,0xff, 0x00,0x00,0x00, 0xff,0x00,0xff, 0xff,0x00,0xff, 0xff,0x00,0xff, //
/* Line   001 */ 0xff,0x00,0xff, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0x00,0xff, //
/* Line   002 */ 0xff,0x00,0xff, 0x00,0x00,0x00, 0xff,0x00,0xff, 0xff,0x00,0xff, 0xff,0x00,0xff, //
/* Line   003 */ 0xff,0x00,0xff, 0x00,0x00,0x00, 0xff,0x00,0xff, 0x00,0x00,0x00, 0x00,0x00,0x00, //
/* Line   004 */ 0xff,0x00,0xff, 0x00,0x00,0x00, 0xff,0x00,0xff, 0xff,0x00,0xff, 0xff,0x00,0xff, //
},
{0x05,0x05, // 13
/* Line   000 */ 0xff,0x00,0xff, 0x00,0x00,0x00, 0xff,0x00,0xff, 0xff,0x00,0xff, 0xff,0x00,0xff, //
/* Line   001 */ 0xff,0x00,0xff, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0x00,0xff, //
/* Line   002 */ 0xff,0x00,0xff, 0x00,0x00,0x00, 0xff,0x00,0xff, 0xff,0x00,0xff, 0xff,0x00,0xff, //
/* Line   003 */ 0xff,0x00,0xff, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0x00,0xff, //
/* Line   004 */ 0xff,0x00,0xff, 0x00,0x00,0x00, 0xff,0x00,0xff, 0xff,0x00,0xff, 0xff,0x00,0xff, //
},
{0x05,0x05, // 14
/* Line   000 */ 0xff,0x00,0xff, 0x00,0x00,0x00, 0xff,0x00,0xff, 0x00,0x00,0x00, 0xff,0x00,0xff, //
/* Line   001 */ 0xff,0x00,0xff, 0x00,0x00,0x00, 0xff,0x00,0xff, 0x00,0x00,0x00, 0xff,0x00,0xff, //
/* Line   002 */ 0xff,0x00,0xff, 0x00,0x00,0x00, 0xff,0x00,0xff, 0xff,0x00,0xff, 0xff,0x00,0xff, //
/* Line   003 */ 0xff,0x00,0xff, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0x00,0xff, //
/* Line   004 */ 0xff,0x00,0xff, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0x00,0xff, //
},
{0x05,0x05, // 15
/* Line   000 */ 0xff,0x00,0xff, 0x00,0x00,0x00, 0xff,0x00,0xff, 0xff,0x00,0xff, 0xff,0x00,0xff, //
/* Line   001 */ 0xff,0x00,0xff, 0x00,0x00,0x00, 0xff,0x00,0xff, 0x00,0x00,0x00, 0x00,0x00,0x00, //
/* Line   002 */ 0xff,0x00,0xff, 0x00,0x00,0x00, 0xff,0x00,0xff, 0xff,0x00,0xff, 0xff,0x00,0xff, //
/* Line   003 */ 0xff,0x00,0xff, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0x00,0xff, //
/* Line   004 */ 0xff,0x00,0xff, 0x00,0x00,0x00, 0xff,0x00,0xff, 0xff,0x00,0xff, 0xff,0x00,0xff, //
},
{0x05,0x05, // 16
/* Line   000 */ 0xff,0x00,0xff, 0x00,0x00,0x00, 0xff,0x00,0xff, 0x00,0x00,0x00, 0x00,0x00,0x00, //
/* Line   001 */ 0xff,0x00,0xff, 0x00,0x00,0x00, 0xff,0x00,0xff, 0x00,0x00,0x00, 0x00,0x00,0x00, //
/* Line   002 */ 0xff,0x00,0xff, 0x00,0x00,0x00, 0xff,0x00,0xff, 0xff,0x00,0xff, 0xff,0x00,0xff, //
/* Line   003 */ 0xff,0x00,0xff, 0x00,0x00,0x00, 0xff,0x00,0xff, 0x00,0x00,0x00, 0xff,0x00,0xff, //
/* Line   004 */ 0xff,0x00,0xff, 0x00,0x00,0x00, 0xff,0x00,0xff, 0xff,0x00,0xff, 0xff,0x00,0xff, //
},
{0x05,0x05, // 17
/* Line   000 */ 0xff,0x00,0xff, 0x00,0x00,0x00, 0xff,0x00,0xff, 0xff,0x00,0xff, 0xff,0x00,0xff, //
/* Line   001 */ 0xff,0x00,0xff, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0x00,0xff, //
/* Line   002 */ 0xff,0x00,0xff, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0x00,0xff, 0x00,0x00,0x00, //
/* Line   003 */ 0xff,0x00,0xff, 0x00,0x00,0x00, 0xff,0x00,0xff, 0x00,0x00,0x00, 0x00,0x00,0x00, //
/* Line   004 */ 0xff,0x00,0xff, 0x00,0x00,0x00, 0xff,0x00,0xff, 0x00,0x00,0x00, 0x00,0x00,0x00, //
},
{0x05,0x05, // 18
/* Line   000 */ 0xff,0x00,0xff, 0x00,0x00,0x00, 0xff,0x00,0xff, 0xff,0x00,0xff, 0xff,0x00,0xff, //
/* Line   001 */ 0xff,0x00,0xff, 0x00,0x00,0x00, 0xff,0x00,0xff, 0x00,0x00,0x00, 0xff,0x00,0xff, //
/* Line   002 */ 0xff,0x00,0xff, 0x00,0x00,0x00, 0xff,0x00,0xff, 0xff,0x00,0xff, 0xff,0x00,0xff, //
/* Line   003 */ 0xff,0x00,0xff, 0x00,0x00,0x00, 0xff,0x00,0xff, 0x00,0x00,0x00, 0xff,0x00,0xff, //
/* Line   004 */ 0xff,0x00,0xff, 0x00,0x00,0x00, 0xff,0x00,0xff, 0xff,0x00,0xff, 0xff,0x00,0xff, //
},
{0x05,0x05, // 19
/* Line   000 */ 0xff,0x00,0xff, 0x00,0x00,0x00, 0xff,0x00,0xff, 0xff,0x00,0xff, 0xff,0x00,0xff, //
/* Line   001 */ 0xff,0x00,0xff, 0x00,0x00,0x00, 0xff,0x00,0xff, 0x00,0x00,0x00, 0xff,0x00,0xff, //
/* Line   002 */ 0xff,0x00,0xff, 0x00,0x00,0x00, 0xff,0x00,0xff, 0xff,0x00,0xff, 0xff,0x00,0xff, //
/* Line   003 */ 0xff,0x00,0xff, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0x00,0xff, //
/* Line   004 */ 0xff,0x00,0xff, 0x00,0x00,0x00, 0xff,0x00,0xff, 0xff,0x00,0xff, 0xff,0x00,0xff, //
}};

const unsigned char image_left=
{
/* width005 */ 0x05,
/* height 005 */ 0x05,
/* Line   000 */ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, //
/* Line   001 */ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0xff,0x00, 0x00,0xff,0x00, //
/* Line   002 */ 0x00,0x00,0x00, 0x00,0xff,0x00, 0x00,0xff,0x00, 0x00,0xff,0x00, 0x00,0x00,0x00, //
/* Line   003 */ 0x00,0xff,0x00, 0x00,0xff,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, //
/* Line   004 */ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, //
};

const unsigned char image_right=
{
/* width005 */ 0x05,
/* height 005 */ 0x05,
/* Line   000 */ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, //
/* Line   001 */ 0xff,0x00,0x00, 0xff,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, //
/* Line   002 */ 0x00,0x00,0x00, 0xff,0x00,0x00, 0xff,0x00,0x00, 0xff,0x00,0x00, 0x00,0x00,0x00, //
/* Line   003 */ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0x00,0x00, 0xff,0x00,0x00, //
/* Line   004 */ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, //
};

const unsigned char image_line=
{
/* width005 */ 0x05,
/* height 005 */ 0x05,
/* Line   000 */ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, //
/* Line   001 */ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, //
/* Line   002 */ 0xff,0xff,0xff, 0xff,0xff,0xff, 0xff,0xff,0xff, 0xff,0xff,0xff, 0xff,0xff,0xff, //
/* Line   003 */ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, //
/* Line   004 */ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, //
};

const unsigned char image_star={
{0x05,0x05,
/* Line   000 */ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, //
/* Line   001 */ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, //
/* Line   002 */ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, //
/* Line   003 */ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, //
/* Line   004 */ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, //
},
{0x05,0x05,
/* Line   000 */ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, //
/* Line   001 */ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, //
/* Line   002 */ 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0xff,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, //
/* Line   003 */ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, //
/* Line   004 */ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, //
},
{0x05,0x05,
/* Line   000 */ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, //
/* Line   001 */ 0x00,0x00,0x00, 0xff,0xff,0x00, 0x00,0x00,0x00, 0xff,0xff,0x00, 0x00,0x00,0x00, //
/* Line   002 */ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, //
/* Line   003 */ 0x00,0x00,0x00, 0xff,0xff,0x00, 0x00,0x00,0x00, 0xff,0xff,0x00, 0x00,0x00,0x00, //
/* Line   004 */ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, //
},
{0x05,0x05,
/* Line   000 */ 0xff,0xff,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0xff,0x00, //
/* Line   001 */ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, //
/* Line   002 */ 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0xff,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, //
/* Line   003 */ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, //
/* Line   004 */ 0xff,0xff,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0xff,0x00, //
},
{0x05,0x05,
/* Line   000 */ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, //
/* Line   001 */ 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0xff,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, //
/* Line   002 */ 0x00,0x00,0x00, 0xff,0xff,0x00, 0x00,0x00,0x00, 0xff,0xff,0x00, 0x00,0x00,0x00, //
/* Line   003 */ 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0xff,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, //
/* Line   004 */ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, //
},
{0x05,0x05,
/* Line   000 */ 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0xff,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, //
/* Line   001 */ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, //
/* Line   002 */ 0xff,0xff,0x00, 0x00,0x00,0x00, 0xff,0xff,0x00, 0x00,0x00,0x00, 0xff,0xff,0x00, //
/* Line   003 */ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, //
/* Line   004 */ 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0xff,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, //
},
{0x05,0x05,
/* Line   000 */ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, //
/* Line   001 */ 0x00,0x00,0x00, 0xff,0xff,0x00, 0xff,0xff,0x00, 0xff,0xff,0x00, 0x00,0x00,0x00, //
/* Line   002 */ 0x00,0x00,0x00, 0xff,0xff,0x00, 0x00,0x00,0x00, 0xff,0xff,0x00, 0x00,0x00,0x00, //
/* Line   003 */ 0x00,0x00,0x00, 0xff,0xff,0x00, 0xff,0xff,0x00, 0xff,0xff,0x00, 0x00,0x00,0x00, //
/* Line   004 */ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, //
},
{0x05,0x05,
/* Line   000 */ 0xff,0xff,0x00, 0x00,0x00,0x00, 0xff,0xff,0x00, 0x00,0x00,0x00, 0xff,0xff,0x00, //
/* Line   001 */ 0x00,0x00,0x00, 0xff,0xff,0x00, 0x00,0x00,0x00, 0xff,0xff,0x00, 0x00,0x00,0x00, //
/* Line   002 */ 0xff,0xff,0x00, 0x00,0x00,0x00, 0xff,0xff,0x00, 0x00,0x00,0x00, 0xff,0xff,0x00, //
/* Line   003 */ 0x00,0x00,0x00, 0xff,0xff,0x00, 0x00,0x00,0x00, 0xff,0xff,0x00, 0x00,0x00,0x00, //
/* Line   004 */ 0xff,0xff,0x00, 0x00,0x00,0x00, 0xff,0xff,0x00, 0x00,0x00,0x00, 0xff,0xff,0x00, //
},
{0x05,0x05,
/* Line   000 */ 0xff,0xff,0x00, 0x00,0x00,0x00, 0xff,0xff,0x00, 0x00,0x00,0x00, 0xff,0xff,0x00, //
/* Line   001 */ 0x00,0x00,0x00, 0xff,0xff,0x00, 0x00,0x00,0x00, 0xff,0xff,0x00, 0x00,0x00,0x00, //
/* Line   002 */ 0xff,0xff,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0xff,0x00, //
/* Line   003 */ 0x00,0x00,0x00, 0xff,0xff,0x00, 0x00,0x00,0x00, 0xff,0xff,0x00, 0x00,0x00,0x00, //
/* Line   004 */ 0xff,0xff,0x00, 0x00,0x00,0x00, 0xff,0xff,0x00, 0x00,0x00,0x00, 0xff,0xff,0x00, //
},
{0x05,0x05,
/* Line   000 */ 0xff,0xff,0x00, 0x00,0x00,0x00, 0xff,0xff,0x00, 0x00,0x00,0x00, 0xff,0xff,0x00, //
/* Line   001 */ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, //
/* Line   002 */ 0xff,0xff,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0xff,0x00, //
/* Line   003 */ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, //
/* Line   004 */ 0xff,0xff,0x00, 0x00,0x00,0x00, 0xff,0xff,0x00, 0x00,0x00,0x00, 0xff,0xff,0x00, //
}};

const unsigned char image_smile=
{
/* width005 */ 0x05,
/* height 005 */ 0x05,
/* Line   000 */ 0x00,0xff,0x00, 0x00,0xff,0x00, 0x00,0x00,0x00, 0x00,0xff,0x00, 0x00,0xff,0x00, //
/* Line   001 */ 0x00,0xff,0x00, 0x00,0xff,0x00, 0x00,0x00,0x00, 0x00,0xff,0x00, 0x00,0xff,0x00, //
/* Line   002 */ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, //
/* Line   003 */ 0x00,0xff,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0xff,0x00, //
/* Line   004 */ 0x00,0x00,0x00, 0x00,0xff,0x00, 0x00,0xff,0x00, 0x00,0xff,0x00, 0x00,0x00,0x00, //
};

const unsigned char image_sad=
{
/* width005 */ 0x05,
/* height 005 */ 0x05,
/* Line   000 */ 0xff,0x00,0x00, 0xff,0x00,0x00, 0x00,0x00,0x00, 0xff,0x00,0x00, 0xff,0x00,0x00, //
/* Line   001 */ 0xff,0x00,0x00, 0xff,0x00,0x00, 0x00,0x00,0x00, 0xff,0x00,0x00, 0xff,0x00,0x00, //
/* Line   002 */ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, //
/* Line   003 */ 0x00,0x00,0x00, 0xff,0x00,0x00, 0xff,0x00,0x00, 0xff,0x00,0x00, 0x00,0x00,0x00, //
/* Line   004 */ 0xff,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0x00,0x00, //
};

const unsigned char image_O=
{
/* width005 */ 0x05,
/* height 005 */ 0x05,
/* Line   000 */ 0x00,0x00,0x00, 0xff,0x00,0x00, 0xff,0x00,0x00, 0xff,0x00,0x00, 0x00,0x00,0x00, //
/* Line   001 */ 0xff,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0x00,0x00, //
/* Line   002 */ 0xff,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0x00,0x00, //
/* Line   003 */ 0xff,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0x00,0x00, //
/* Line   004 */ 0x00,0x00,0x00, 0xff,0x00,0x00, 0xff,0x00,0x00, 0xff,0x00,0x00, 0x00,0x00,0x00, //
};

genvex 发表于 2020-4-10 12:06

我居然还没反应过来
页: [1]
查看完整版本: 【搬运】基于Atom的反应测试游戏