Space-Invader
CalisJI 2024-08-20 16:26:40 +07:00
parent 37a3080b48
commit 556cc8ace0
2 changed files with 271 additions and 481 deletions

View File

@ -5,76 +5,24 @@ const uint16_t gif_frame_0[] = {
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5B0C, 0x5AEB,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x31C7,
0x738E, 0x6B6D, 0x31A6, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x4A8A, 0x73CF, 0x73AE, 0x4A49, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x5AEC, 0x73AE, 0x73AE, 0x5ACB, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x3186, 0x5AEC, 0x632D, 0x632D,
0x5AEC, 0x3186, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4229, 0x6B4D,
0x530E, 0x530E, 0x6B4D, 0x4229, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x3A08, 0x4249, 0x52AB, 0x6B6D, 0x5B0C,
0x5AEC, 0x4B71, 0x5D9A, 0x5D9A, 0x4B71, 0x5AEC, 0x5B0C, 0x6B6D,
0x52AB, 0x4249, 0x3A08, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x5B0C, 0x6B6E, 0x632D, 0x738E,
0x73AE, 0x5B0C, 0x52ED, 0x4CFA, 0x8F5F, 0x8F5F, 0x4CFA, 0x52ED,
0x5B0C, 0x73AE, 0x738E, 0x632D, 0x6B6E, 0x5B0C, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5ACB, 0x73AE, 0x634D,
0x6B4D, 0x73AE, 0x73AE, 0x52AB, 0x4350, 0x4DFE, 0x565F, 0x565F,
0x4DFE, 0x4350, 0x52AB, 0x73AE, 0x73AE, 0x6B4D, 0x634D, 0x73AE,
0x5ACB, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4A6A, 0x5AEC,
0x6B4D, 0x5B0C, 0x632D, 0x6B6E, 0x6B4D, 0x4A6A, 0x2AF2, 0x4DDE,
0x563F, 0x563F, 0x4DDE, 0x2AF2, 0x4A6A, 0x6B4D, 0x6B6E, 0x632D,
0x5B0C, 0x6B4D, 0x5AEC, 0x4A6A, 0x0000, 0x0000, 0x0000, 0x4249,
0x5AEC, 0x5ACC, 0x5AEC, 0x52AB, 0x52AB, 0x5AEC, 0x52CC, 0x424A,
0x2290, 0x1BD8, 0x2C5A, 0x2C5A, 0x1BD8, 0x2290, 0x424A, 0x52CC,
0x5AEC, 0x52AB, 0x52AB, 0x5ACC, 0x5ACC, 0x5AEC, 0x4249, 0x0000,
0x0000, 0x31A7, 0x39E8, 0x39C8, 0x39C8, 0x31C8, 0x31C8, 0x39C8,
0x31C8, 0x3187, 0x2A6E, 0x0B77, 0x0B77, 0x0B77, 0x0B77, 0x2A6E,
0x3187, 0x31C8, 0x39C8, 0x31C8, 0x31C8, 0x39C8, 0x39C8, 0x39E8,
0x31A7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x3A2A, 0x2AAF, 0x1B12, 0x1B12,
0x2AAF, 0x3A2A, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2966, 0x4A6B,
0x4A8B, 0x4A8B, 0x4A6B, 0x2966, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x2146, 0x3A0A, 0x3A2B, 0x3A2B, 0x3A0A, 0x2146, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x29C9, 0x3A0A, 0x31E9, 0x31E9, 0x3A0A, 0x29C9,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x222C, 0x432F, 0x432F,
0x222C, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2CDB,
0x973E, 0x973E, 0x2CDB, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x2CDB, 0x76DF, 0x76DF, 0x2CDB, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0BF9, 0x4DFE, 0x4DFE, 0x0BF9, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0398, 0x1C7A, 0x1C7A,
0x0398, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x03B8, 0x03B8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8CD6,
0x8CD6, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xADB8, 0x19AE,
0x19AE, 0xADB8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0xCE38, 0xBDF6, 0x7453, 0x11F1, 0x3AF5,
0x3AF5, 0x11F1, 0x7453, 0xBDF6, 0xCE38, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x4393, 0x12F8, 0x09D4, 0x008B, 0x1256,
0x1256, 0x008B, 0x09D4, 0x12F8, 0x4393, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x01F6, 0x1A75, 0x4B12, 0x52F0, 0x098F,
0x098F, 0x52F0, 0x4B12, 0x1A75, 0x01F6, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0xBCF1, 0xEE56, 0xEE57, 0x0000, 0x63B3,
0x63B3, 0x0000, 0xEE57, 0xEE56, 0xBCF1, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
@ -85,7 +33,6 @@ const uint16_t gif_frame_0[] = {
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000,
};
const uint16_t gif_frame_1[] = {
@ -93,82 +40,27 @@ const uint16_t gif_frame_1[] = {
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2104, 0x2104,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x4A49, 0x4228, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x18E3, 0x52AA, 0x4A69, 0x18E3, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x2965, 0x52AA, 0x528A, 0x2945, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x31A6, 0x528A, 0x4A69,
0x3186, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0841, 0x39E7,
0x39E7, 0x39E7, 0x39E7, 0x0841, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0020, 0x0841, 0x0020,
0x2124, 0x4A49, 0x39C7, 0x39C7, 0x4A49, 0x2124, 0x0020, 0x0841,
0x0020, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2104, 0x2945, 0x39C7,
0x52AA, 0x39E7, 0x39C7, 0x5AEB, 0x738E, 0x738E, 0x5AEB, 0x39C7,
0x39E7, 0x52AA, 0x39C7, 0x2945, 0x2104, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x18E3, 0x4A49, 0x4228,
0x4208, 0x528A, 0x528A, 0x3186, 0x39E7, 0x6B6D, 0x73AE, 0x73AE,
0x6B6D, 0x39E7, 0x3186, 0x528A, 0x528A, 0x4208, 0x4A49, 0x4A49,
0x18E3, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0841, 0x4208,
0x528A, 0x39E7, 0x4A49, 0x528A, 0x4A69, 0x2945, 0x5AEB, 0x6B6D,
0x738E, 0x738E, 0x6B6D, 0x5AEB, 0x2945, 0x4A69, 0x528A, 0x4A49,
0x39E7, 0x528A, 0x4208, 0x0841, 0x0000, 0x0000, 0x0000, 0x0841,
0x2965, 0x39C7, 0x4228, 0x31A6, 0x4228, 0x4A49, 0x4228, 0x2124,
0x5ACB, 0x6B6D, 0x738E, 0x738E, 0x6B6D, 0x5ACB, 0x2124, 0x4228,
0x4A49, 0x4228, 0x31A6, 0x4228, 0x39C7, 0x2965, 0x0841, 0x0000,
0x0020, 0x2945, 0x31A6, 0x3186, 0x3186, 0x2965, 0x3186, 0x31A6,
0x3186, 0x2104, 0x52AA, 0x630C, 0x6B4D, 0x6B4D, 0x630C, 0x52AA,
0x2104, 0x3186, 0x31A6, 0x3186, 0x2965, 0x3186, 0x3186, 0x31A6,
0x2945, 0x0020, 0x0000, 0x1082, 0x10A2, 0x10A2, 0x10A2, 0x1082,
0x1082, 0x10A2, 0x1082, 0x0861, 0x18E3, 0x5AEB, 0x5AEB, 0x5AEB,
0x5AEB, 0x18E3, 0x0861, 0x1082, 0x10A2, 0x1082, 0x1082, 0x10A2,
0x10A2, 0x10A2, 0x1082, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x18C3, 0x5ACB,
0x5ACB, 0x5ACB, 0x5ACB, 0x18C3, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0861, 0x2945, 0x2124, 0x2124, 0x2945, 0x0861, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x18C3, 0x2124, 0x2124, 0x18C3, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0861, 0x10A2, 0x10A2, 0x10A2,
0x10A2, 0x0861, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0020, 0x0861,
0x18C3, 0x18C3, 0x0861, 0x0020, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x5ACB, 0x632C, 0x632C, 0x5ACB, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x6B4D, 0x738E, 0x738E, 0x6B4D, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x630C, 0x6B6D, 0x6B6D,
0x630C, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x630C,
0x6B4D, 0x6B4D, 0x630C, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x632C, 0x630C, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x632C, 0x632C, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8CD6,
0x8CD6, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xADB8, 0x19AE,
0x19AE, 0xADB8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0xCE38, 0xBDF6, 0x7453, 0x11F1, 0x3AF5,
0x3AF5, 0x11F1, 0x7453, 0xBDF6, 0xCE38, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x4393, 0x12F8, 0x09D4, 0x008B, 0x1256,
0x1256, 0x008B, 0x09D4, 0x12F8, 0x4393, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0217, 0x1A75, 0x4B12, 0x52F0, 0x098F,
0x098F, 0x52F0, 0x4B12, 0x1A75, 0x0217, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0xBCB1, 0xEE36, 0xEE16, 0x0000, 0x63B3,
0x63B3, 0x0000, 0xEE16, 0xEE36, 0xBCB1, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
@ -176,7 +68,6 @@ const uint16_t gif_frame_1[] = {
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
};
const uint16_t gif_frame_2[] = {
@ -184,82 +75,27 @@ const uint16_t gif_frame_2[] = {
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4A6A, 0x4A69,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x6B6E, 0x6B4D, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x4229, 0x73CF, 0x738E, 0x4208, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x52EB, 0x73CF, 0x73AE, 0x52AA, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5AEC, 0x738E, 0x738E,
0x5AEB, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x39C7, 0x630C,
0x630C, 0x630C, 0x630C, 0x39C7, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2145, 0x39C7, 0x2986,
0x4A6A, 0x6B6E, 0x4B2F, 0x4B2F, 0x6B6E, 0x4A6A, 0x2986, 0x39C7,
0x2145, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4A6A, 0x528B, 0x5B0C,
0x73AF, 0x632D, 0x5B0C, 0x43B3, 0x6E5D, 0x6E5D, 0x43B3, 0x5B0C,
0x632D, 0x73AF, 0x5B0C, 0x528B, 0x4A6A, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4A49, 0x6B6D, 0x6B4D,
0x632D, 0x73AE, 0x73AE, 0x5AEC, 0x530E, 0x4D5B, 0x873F, 0x873F,
0x4D5B, 0x530E, 0x5AEC, 0x73AE, 0x73AE, 0x632D, 0x6B6D, 0x6B6D,
0x4A49, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x31C7, 0x632D,
0x73AE, 0x632D, 0x6B6D, 0x73AE, 0x738E, 0x528B, 0x4372, 0x4E1F,
0x563F, 0x563F, 0x4E1F, 0x4372, 0x528B, 0x738E, 0x73AE, 0x6B6D,
0x632D, 0x73AE, 0x632D, 0x31C7, 0x0000, 0x0000, 0x0000, 0x31A7,
0x52AB, 0x5B0C, 0x6B4D, 0x5AEC, 0x634D, 0x6B6E, 0x634D, 0x4A6A,
0x2B33, 0x4DDF, 0x565F, 0x565F, 0x4DDF, 0x2B33, 0x4A6A, 0x634D,
0x6B6E, 0x634D, 0x5AEC, 0x6B4D, 0x5B0C, 0x52AB, 0x31A7, 0x0000,
0x2125, 0x4A8B, 0x5AEC, 0x5AEC, 0x5AEC, 0x52AB, 0x52CC, 0x5AEC,
0x52CC, 0x424A, 0x1A91, 0x23F9, 0x349B, 0x349B, 0x23F9, 0x1A91,
0x424A, 0x52CC, 0x5AEC, 0x52CC, 0x52AB, 0x5AEC, 0x5AEC, 0x5AEC,
0x4A8B, 0x2125, 0x1905, 0x39E8, 0x3A09, 0x3A09, 0x3A09, 0x39E8,
0x39E8, 0x3A09, 0x39E8, 0x31C8, 0x228F, 0x0B97, 0x0B77, 0x0B77,
0x0B97, 0x228F, 0x31C8, 0x39E8, 0x3A09, 0x39E8, 0x39E8, 0x3A09,
0x3A09, 0x3A09, 0x39E8, 0x1905, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x18E4, 0x3A2B, 0x1AD1,
0x1355, 0x1355, 0x1AD1, 0x3A2B, 0x18E4, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x31C8, 0x4A8B, 0x426B, 0x426B, 0x4A8B, 0x31C8, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x2126, 0x3A2B, 0x424B, 0x424B, 0x3A2B, 0x2126,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x31EA, 0x3A0A, 0x31EA, 0x31EA,
0x3A0A, 0x31EA, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2989, 0x320B,
0x320A, 0x320A, 0x320B, 0x2989, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x3C76, 0x7DD8, 0x7DD8, 0x3C76, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x03D9, 0x55FE, 0x9F9F, 0x9F9F, 0x55FE, 0x03D9,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x03B8, 0x353D, 0x5E5F, 0x5E5F,
0x353D, 0x03B8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x143A,
0x4DDE, 0x4DFE, 0x143A, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0398, 0x0BF9, 0x0BF9, 0x0398, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0398, 0x0398, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8CD6,
0x8CD6, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xADB8, 0x19AE,
0x19AE, 0xADB8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0xCE38, 0xBDF6, 0x7453, 0x11F1, 0x3AF5,
0x3AF5, 0x11F1, 0x7453, 0xBDF6, 0xCE38, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x4393, 0x12F8, 0x09D4, 0x008B, 0x1256,
0x1256, 0x008B, 0x09D4, 0x12F8, 0x4393, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0217, 0x1A75, 0x4B12, 0x52F0, 0x098F,
0x098F, 0x52F0, 0x4B12, 0x1A75, 0x0217, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0xBC70, 0xEE57, 0xEE57, 0x0000, 0x63B3,
0x63B3, 0x0000, 0xEE57, 0xEE57, 0xBC70, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
@ -267,191 +103,8 @@ const uint16_t gif_frame_2[] = {
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
};
const uint16_t gif_frame_3[] = {
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4249, 0x4249,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x6B6D, 0x6B4D, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x3A08, 0x73AE, 0x738E, 0x39E7, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x52AB, 0x73CF, 0x73AE, 0x4A8A, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5B0C, 0x73AE, 0x73AE,
0x5AEB, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3186, 0x5AEC,
0x632D, 0x632D, 0x5AEC, 0x3186, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x4229, 0x6B6D, 0x5B0D, 0x5B0D, 0x6B6D, 0x4229, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x39C7, 0x4229,
0x5B0C, 0x4A8A, 0x5ACB, 0x534F, 0x4C76, 0x4C76, 0x534F, 0x5ACB,
0x4A8A, 0x5B0C, 0x4229, 0x39C7, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4A8A, 0x632D,
0x630C, 0x6B8E, 0x73CF, 0x632D, 0x5B0D, 0x4477, 0x977F, 0x977F,
0x4477, 0x5B0D, 0x632D, 0x73CF, 0x6B8E, 0x630C, 0x632D, 0x4A8A,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5ACB,
0x73CF, 0x632D, 0x634D, 0x73AE, 0x73AE, 0x52CB, 0x4B2F, 0x4DBD,
0x6EBF, 0x6EBF, 0x4DBD, 0x4B2F, 0x52CB, 0x73AE, 0x73AE, 0x632D,
0x632D, 0x73CF, 0x5ACB, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x4208, 0x634D, 0x73AE, 0x632D, 0x6B6E, 0x73AE, 0x738E, 0x4A8B,
0x3B73, 0x563F, 0x563F, 0x563F, 0x563F, 0x3B73, 0x4A8B, 0x738E,
0x73AE, 0x6B6E, 0x632D, 0x73AE, 0x634D, 0x4208, 0x0000, 0x0000,
0x0000, 0x39E8, 0x52CB, 0x5AEC, 0x632D, 0x5AEC, 0x632D, 0x6B4D,
0x630D, 0x424A, 0x22F2, 0x459E, 0x563F, 0x563F, 0x459E, 0x22F2,
0x424A, 0x630D, 0x6B4D, 0x632D, 0x5AEC, 0x632D, 0x5AEC, 0x52CB,
0x39E8, 0x0000, 0x2145, 0x52AB, 0x5AEC, 0x5ACC, 0x52CC, 0x4A8B,
0x52CC, 0x5AEC, 0x52AB, 0x422A, 0x1A91, 0x1B98, 0x23F9, 0x23F9,
0x1B98, 0x1A91, 0x422A, 0x52AB, 0x5AEC, 0x52CC, 0x4A8B, 0x52CC,
0x5ACC, 0x5AEC, 0x52AB, 0x2145, 0x1904, 0x31C8, 0x39C8, 0x39C8,
0x31C8, 0x31A7, 0x31C8, 0x39C8, 0x31A7, 0x31A7, 0x228F, 0x0B77,
0x0B77, 0x0B77, 0x0B77, 0x228F, 0x31A7, 0x31A7, 0x39C8, 0x31C8,
0x31A7, 0x31C8, 0x39C8, 0x39C8, 0x31C8, 0x1904, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x18E4,
0x3A2B, 0x22B1, 0x1334, 0x1334, 0x22B1, 0x3A2B, 0x18E4, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x31C8, 0x4A8B, 0x4A6B, 0x4A6B, 0x4A8B, 0x31C8,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x2125, 0x3A2B, 0x426B, 0x426B,
0x3A2B, 0x2125, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x31A8, 0x31E9,
0x320A, 0x320A, 0x31E9, 0x31A8, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x29A9, 0x31EA, 0x31EA, 0x31EA, 0x31EA, 0x29A9, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x1AB0, 0x5433, 0x5433, 0x1AB0, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x353C, 0x9F9F, 0x9F9F,
0x353C, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0398, 0x2CFC,
0x6E9F, 0x6E9F, 0x2CFC, 0x0398, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x1419, 0x4DFF, 0x4DFF, 0x1419, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0398, 0x24BB, 0x24BB, 0x0398, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0398, 0x0398,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0398, 0x0398, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
};
const uint16_t gif_frame_4[] = {
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4229, 0x228F,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x6B4D, 0x632D, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x3A2B, 0x73AE, 0x6B6D, 0x31C8, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x52AB, 0x73CF, 0x73AE, 0x4A8B, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5B0C, 0x73AE, 0x73AE,
0x52CB, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x39E7, 0x5AEC,
0x630D, 0x630D, 0x5AEC, 0x39E7, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x4229, 0x6B4D, 0x5B0D, 0x5B0D, 0x6B4D, 0x4229, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x29A9, 0x3A2B, 0x4A8A,
0x632D, 0x5ACB, 0x5AEC, 0x0398, 0x459E, 0x459E, 0x0398, 0x5AEC,
0x5ACB, 0x632D, 0x4A8A, 0x3A2B, 0x29A9, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5ACB, 0x632D,
0x630D, 0x738E, 0x73AE, 0x5B0C, 0x5B0D, 0x4DBD, 0x0000, 0x0000,
0x4DBD, 0x5B0D, 0x5B0C, 0x73AE, 0x738E, 0x630D, 0x632D, 0x5ACB,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5AEC,
0x73CF, 0x630D, 0x632D, 0x73AE, 0x6B6D, 0x52AB, 0x0398, 0x563F,
0x9F9F, 0x9F9F, 0x563F, 0x0398, 0x52AB, 0x738E, 0x73AE, 0x632D,
0x630D, 0x73CF, 0x5AEC, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x4249, 0x632D, 0x6B6D, 0x4B2F, 0x6B4D, 0x73AE, 0x6B6D, 0x426B,
0x22F2, 0x6EBF, 0x977F, 0x977F, 0x6EBF, 0x22F2, 0x426B, 0x6B6D,
0x73AE, 0x6B4D, 0x4B2F, 0x6B6D, 0x632D, 0x4249, 0x0000, 0x0000,
0x0000, 0x228F, 0x5ACB, 0x5ACB, 0x5B0C, 0x52CB, 0x5AEC, 0x534F,
0x5ACB, 0x4249, 0x22B1, 0x353C, 0x563F, 0x563F, 0x353C, 0x22B1,
0x4249, 0x5ACB, 0x534F, 0x5AEC, 0x5ACB, 0x5B0C, 0x5ACB, 0x5ACB,
0x228F, 0x0000, 0x3186, 0x4A8A, 0x4A8B, 0x4A8B, 0x4A8B, 0x426B,
0x4A8A, 0x4A8B, 0x4A8A, 0x39E8, 0x1AB0, 0x1334, 0x0B77, 0x0B77,
0x1334, 0x1AB0, 0x39E8, 0x4A8A, 0x4A8B, 0x4A8A, 0x426B, 0x4A8B,
0x4A8B, 0x4A8B, 0x4A8A, 0x3186, 0x1904, 0x1904, 0x3186, 0x2145,
0x2145, 0x1904, 0x2145, 0x3186, 0x18E4, 0x31A7, 0x31EA, 0x3B73,
0x23F9, 0x23F9, 0x3B73, 0x31EA, 0x31A7, 0x18E4, 0x3186, 0x2145,
0x1904, 0x2145, 0x2145, 0x2145, 0x1904, 0x1904, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x18E4,
0x31E9, 0x320A, 0x1A91, 0x1A91, 0x320A, 0x31E9, 0x18E4, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x39C7, 0x426B, 0x4A8A, 0x4A8A, 0x426B, 0x39C7,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x31A7, 0x31C8, 0x31EA, 0x31EA,
0x31C8, 0x31A7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x31A8, 0x31C8,
0x31C8, 0x31C8, 0x31C8, 0x31A8, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x29A9, 0x39C8, 0x3A08, 0x3A08, 0x39C8, 0x29A9, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0B77, 0x4DFF, 0x4DFF, 0x0B77, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1419, 0x0000, 0x0000,
0x1419, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0398, 0x4C76,
0x6E9F, 0x6E9F, 0x4C76, 0x0398, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x1B98, 0x2CFC, 0x24BB, 0x1B98, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0398, 0x4477, 0x5433, 0x0398, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1B98, 0x1B98,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0398, 0x0398, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
};
const int num_frames = 5;
const int frame_width = 26;
const int frame_height = 27;
const int num_frames = 3;
const int frame_width = 16;
const int frame_height = 16;

View File

@ -4,6 +4,7 @@
#include <vector>
#include <cstdlib>
#include <ctime>
#include <Fonts/FreeMono9pt7b.h>
#pragma region Matrix Config
#define R1_PIN 4
#define G1_PIN 5
@ -29,7 +30,6 @@
#define PANE_HEIGHT PANEL_HEIGHT
#define NUM_PIXELS PANE_WIDTH *PANE_HEIGHT
#define COLOR_GREEN 0x07E0
#define COLOR_RED 0xF800
#define COLOR_BLUE 0x001F
@ -58,25 +58,27 @@ const int floatSize = sizeof(float);
const int SCREEN_WIDTH = 128;
const int SCREEN_HEIGHT = 128;
const int PLAYER_WIDTH = 16;
const int PLAYER_HEIGHT = 8;
const int ENEMY_WIDTH = 16;
const int PLAYER_HEIGHT = 16;
const int ENEMY_WIDTH = 8;
const int ENEMY_HEIGHT = 8;
const int BULLET_WIDTH = 2;
const int BULLET_HEIGHT = 4;
const int NUM_ENEMIES = 10;
struct Player {
const int MAX_BULLETS = 10; // Số lượng viên đạn tối đa
struct Player
{
int x, y;
bool alive;
};
struct Enemy {
struct Enemy
{
int x, y;
bool alive;
};
struct Bullet {
struct Bullet
{
int x, y;
bool active;
};
@ -96,9 +98,9 @@ uint32_t rgb565_to_rgb888(uint16_t rgb565)
// Ghép các giá trị RGB888 thành một giá trị 32 bit
return (r << 16) | (g << 8) | b;
}
Player player ;
Player player;
std::vector<Enemy> enemies(NUM_ENEMIES);
Bullet bullet = {0, 0, false};
Bullet bullets[MAX_BULLETS];
void Initialize_State()
{
player = {SCREEN_WIDTH / 2 - PLAYER_WIDTH / 2, SCREEN_HEIGHT - PLAYER_HEIGHT - 10, true};
@ -106,81 +108,204 @@ void Initialize_State()
{
enemies[i] = {i * (SCREEN_WIDTH / NUM_ENEMIES), 0, true};
}
for (int i = 0; i < MAX_BULLETS; ++i)
{
bullets[i] = {0, 0, false};
}
}
void updatePlayer(int x) {
void fireBullet()
{
for (int i = 0; i < MAX_BULLETS; ++i)
{
if (!bullets[i].active)
{
bullets[i].x = player.x + PLAYER_WIDTH / 2 - BULLET_WIDTH / 2;
bullets[i].y = player.y - BULLET_HEIGHT;
bullets[i].active = true;
break; // Chỉ bắn một viên đạn tại một thời điểm
}
}
}
int X_player = 0;
void updatePlayer(int x)
{
// Example: Move player left or right based on input
player.x = x;
}
void updateEnemies() {
for (auto& enemy : enemies) {
if (enemy.alive) {
unsigned long last_enemies_update = millis();
int enemies_update_rate = 500;
void updateEnemies()
{
unsigned long now = millis();
if (now - last_enemies_update < enemies_update_rate)
return;
last_enemies_update = now;
for (auto &enemy : enemies)
{
if (enemy.alive)
{
enemy.y += 1; // Move downwards
if (enemy.y > SCREEN_HEIGHT) {
if (enemy.y > SCREEN_HEIGHT)
{
enemy.y = 0; // Reset position if off screen
}
}
}
}
void updateBullet() {
if (bullet.active) {
bullet.y -= 4; // Move upwards
if (bullet.y < 0) {
bullet.active = false; // Deactivate if off screen
unsigned long last_bullets_update = millis();
int bullets_update_speed = 10;
void updateBullets()
{
unsigned long now = millis();
if (now - last_bullets_update < bullets_update_speed)
return;
last_bullets_update = now;
for (int i = 0; i < MAX_BULLETS; ++i)
{
if (bullets[i].active)
{
bullets[i].y -= 4; // Di chuyển lên trên
if (bullets[i].y < 0)
{
bullets[i].active = false; // Vô hiệu hóa nếu ra ngoài màn hình
}
}
}
}
void checkCollisions() {
unsigned long last_game_over_time = millis();
int restart_time = 2000;
void checkCollisions()
{
// Check collision between bullet and enemies
for (auto& enemy : enemies) {
if (enemy.alive && bullet.active &&
bullet.x < enemy.x + ENEMY_WIDTH &&
bullet.x + BULLET_WIDTH > enemy.x &&
bullet.y < enemy.y + ENEMY_HEIGHT &&
bullet.y + BULLET_HEIGHT > enemy.y) {
for (int i = 0; i < MAX_BULLETS; ++i)
{
if (bullets[i].active)
{
for (auto &enemy : enemies)
{
if (enemy.alive &&
bullets[i].x < enemy.x + ENEMY_WIDTH &&
bullets[i].x + BULLET_WIDTH > enemy.x &&
bullets[i].y < enemy.y + ENEMY_HEIGHT &&
bullets[i].y + BULLET_HEIGHT > enemy.y)
{
enemy.alive = false;
bullet.active = false;
bullets[i].active = false;
break;
}
}
}
}
// Check collision between enemies and player
for (auto& enemy : enemies) {
for (auto &enemy : enemies)
{
if (enemy.alive &&
player.x < enemy.x + ENEMY_WIDTH &&
player.x + PLAYER_WIDTH > enemy.x &&
player.y < enemy.y + ENEMY_HEIGHT &&
player.y + PLAYER_HEIGHT > enemy.y) {
player.y + PLAYER_HEIGHT > enemy.y)
{
player.alive = false; // Player is hit
last_game_over_time = millis();
}
}
}
void render() {
unsigned long last_render_time = millis();
int render_rate = 20; // Frame rate in frames per second
void render()
{
unsigned long now = millis();
if (now - last_render_time < 1000 / render_rate)
return;
last_render_time = now;
dma_display->clearScreen();
if (player.alive) {
dma_display->drawRect(player.x, player.y, PLAYER_WIDTH, PLAYER_HEIGHT, COLOR_GREEN);
if (player.alive)
{
int x = player.x;
int y = player.y;
if (y > 64)
{
y = y - 64;
x = x + 128;
}
for (const auto& enemy : enemies) {
if (enemy.alive) {
dma_display->drawRect(enemy.x, enemy.y, ENEMY_WIDTH, ENEMY_HEIGHT, COLOR_RED);
dma_display->drawRect(x, y, PLAYER_WIDTH, PLAYER_HEIGHT, COLOR_GREEN);
}
for (auto &enemy : enemies)
{
if (enemy.alive)
{
int x = enemy.x;
int y = enemy.y;
if (y > 64)
{
y = y - 64;
x = x + 128;
}
dma_display->drawRect(x, y, ENEMY_WIDTH, ENEMY_HEIGHT, COLOR_RED);
}
}
if (bullet.active) {
dma_display->drawRect(bullet.x, bullet.y, BULLET_WIDTH, BULLET_HEIGHT, COLOR_WHITE);
for (int i = 0; i < MAX_BULLETS; ++i)
{
if (bullets[i].active)
{
int x = bullets[i].x;
int y = bullets[i].y;
if (y > 64)
{
y = y - 64;
x = x + 128;
}
dma_display->drawRect(x, y, BULLET_WIDTH, BULLET_HEIGHT, COLOR_WHITE);
}
}
}
unsigned long period_time = millis();
bool set_FPS(int rate){
bool set_FPS(int rate)
{
unsigned long now = millis();
int elapsed = 1000/rate;
if(now - period_time >=elapsed){
int elapsed = 1000 / rate;
if (now - period_time >= elapsed)
{
period_time = now;
return true;
}
else return false;
else
return false;
}
const char *text = "Game Over";
bool game_over = false;
void Game_Over()
{
if(!game_over){
game_over = true;
last_game_over_time = millis();
}
// Font metrics
int textWidth = 0;
int textHeight = 0;
int cursorX = 0;
int cursorY = 0;
// Calculate text dimensions (approximated for example)
textWidth = strlen(text) * 11; // Assuming each character is approximately 6 pixels wide
textHeight = 8; // Assuming font height is 8 pixels
// Compute the center position
cursorX = (128 - textWidth) / 2;
cursorY = (64 + textHeight) / 2;
// Set the cursor position
dma_display->setCursor(cursorX, cursorY);
// Print text on the matrix
dma_display->print(text);
}
void setup()
{
@ -189,12 +314,15 @@ void setup()
dma_display->begin(); // setup the LED matrix
dma_display->setBrightness8(200); // 0-255
dma_display->clearScreen();
dma_display->setTextColor(dma_display->color333(7, 7, 7)); //)
dma_display->setTextSize(1);
dma_display->setFont(&FreeMono9pt7b);
Initialize_State();
}
void loop()
{
// server.handleClient();
#pragma region Serial processing
while (Serial.available() > 0)
{
@ -221,8 +349,6 @@ void loop()
int expectedSize = numRows * numCols * floatSize;
if (bufferIndex >= (2 * sizeof(int) + expectedSize))
{
//dma_display->clearScreen();
for (int row = 0; row < numRows; ++row)
{
for (int col = 0; col < numCols; ++col)
@ -238,18 +364,29 @@ void loop()
if (player.alive)
{
int x = (int)data[0][0];
int f = (int)data[0][2];
updatePlayer(x);
updateEnemies();
updateBullet();
checkCollisions();
render();
if (f == 1)
fireBullet();
}
else
{
//Game_Over();
}
}
// Reset chỉ số chỉ mục sau khi xử lý
}
bufferIndex = 0;
}
if(!player.alive) Game_Over();
unsigned long now = millis();
if(now-last_game_over_time >= restart_time && !player.alive){
Initialize_State();
}
//if(game_over) return;
updateEnemies();
updateBullets();
checkCollisions();
render();
#pragma endregion
}