full function game
parent
e4480b5333
commit
c9ed38122d
|
@ -8,12 +8,12 @@
|
|||
; Please visit documentation for the other options and examples
|
||||
; https://docs.platformio.org/page/projectconf.html
|
||||
|
||||
[env:nodemcu-32s]
|
||||
[env:esp32-s3-devkitc-1]
|
||||
platform = espressif32
|
||||
board = nodemcu-32s
|
||||
board_build.mcu = esp32
|
||||
board = esp32-s3-devkitc-1
|
||||
framework = arduino
|
||||
monitor_speed = 230400
|
||||
board_build.mcu = esp32s3
|
||||
lib_deps =
|
||||
mrfaptastic/ESP32 HUB75 LED MATRIX PANEL DMA Display@^3.0.12
|
||||
https://github.com/mrcodetastic/ESP32-HUB75-MatrixPanel-DMA.git
|
||||
|
@ -22,3 +22,6 @@ lib_deps =
|
|||
mbed-seeed/BluetoothSerial@0.0.0+sha.f56002898ee8
|
||||
me-no-dev/AsyncTCP@^1.1.1
|
||||
bblanchon/ArduinoJson@^7.1.0
|
||||
build_flags =
|
||||
-DBOARD_HAS_PSRAM
|
||||
-mfix-esp32-psram-cache-issue
|
322
src/main.cpp
322
src/main.cpp
|
@ -256,7 +256,7 @@ bool created_shot = false;
|
|||
bool direction = false; // false = left, true = right;
|
||||
int lastpoint_shot[2];
|
||||
unsigned long period_shot = millis();
|
||||
int speed_shot = 100;
|
||||
int speed_shot = 50;
|
||||
void Drawbullet(bool deleted = false)
|
||||
{
|
||||
// measure x dimension
|
||||
|
@ -430,29 +430,128 @@ void Defend()
|
|||
}
|
||||
}
|
||||
}
|
||||
void setup()
|
||||
{
|
||||
Serial.begin(115200 * 2); // Đảm bảo baud rate khớp với baud rate của Python
|
||||
dma_display = new MatrixPanel_I2S_DMA(mxconfig);
|
||||
dma_display->begin(); // setup the LED matrix
|
||||
dma_display->setBrightness8(200); // 0-255
|
||||
dma_display->clearScreen();
|
||||
// draw_cat(10,10,20,20);
|
||||
// drawXbm565(10,10,20,20,CAT_bits,dma_display->color565(100,0,0));
|
||||
}
|
||||
|
||||
bool mode = false;
|
||||
int reset_stickman = 2000;
|
||||
bool Mode_game = false;
|
||||
bool Mode_game = true;
|
||||
int width = 26;
|
||||
int height = 26;
|
||||
int X_craft = 0;
|
||||
int Y_craft = 0;
|
||||
bool exist = false;
|
||||
const int num_rocket = 15;
|
||||
int rockets[num_rocket][4] =
|
||||
{
|
||||
{0, -2, 0, -2},
|
||||
{0, -14, 0, -14},
|
||||
{0, -26, 0, -26},
|
||||
{0, -38, 0, -38},
|
||||
{0, -50, 0, -50},
|
||||
{0, -62, 0, -62},
|
||||
{0, -74, 0, -74},
|
||||
{0, -86, 0, -86},
|
||||
{0, -98, 0, -98},
|
||||
{0, -110, 0, -110}};
|
||||
const int enemies_numX = 15;
|
||||
const int enemies_numY = 3;
|
||||
const int enemies_num = enemies_numX * enemies_numY;
|
||||
int enemies[enemies_num][2];
|
||||
int x_step = 8;
|
||||
int y_step = 6;
|
||||
int live_enemies = 0;
|
||||
void create_enemies()
|
||||
{
|
||||
live_enemies = enemies_num;
|
||||
for (int i = 1; i < enemies_numX + 1; i++)
|
||||
{
|
||||
for (int j = 1; j < enemies_numY + 1; j++)
|
||||
{
|
||||
int x = i * x_step;
|
||||
int y = j * y_step;
|
||||
|
||||
void draw_spacecraft(int x, int y){
|
||||
for (int i = 0; i < 20; i++)
|
||||
enemies[(i - 1) * 3 + (j - 1)][0] = x;
|
||||
enemies[(i - 1) * 3 + (j - 1)][1] = y;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void draw_enemies()
|
||||
{
|
||||
for (int i = 0; i < enemies_num; i++)
|
||||
{
|
||||
for (int j = 0; j < 20; j++)
|
||||
uint16_t color = 0x03FF;
|
||||
int x = enemies[i][0];
|
||||
int y = enemies[i][1];
|
||||
if (x == 0 && y == 0)
|
||||
continue;
|
||||
dma_display->drawCircle(enemies[i][0], enemies[i][1], 1, color);
|
||||
}
|
||||
}
|
||||
|
||||
void destroy_enemy()
|
||||
{
|
||||
if (!exist)
|
||||
return;
|
||||
for (int i = 0; i < enemies_num; i++)
|
||||
{
|
||||
uint16_t color = aircraft[j*20+i];
|
||||
int _x = x+i;
|
||||
int _y = y+i;
|
||||
for (int x = 0; x < num_rocket; x++)
|
||||
{
|
||||
int x1_rocket = rockets[x][0];
|
||||
int y1_rocket = rockets[x][1];
|
||||
int x2_rocket = rockets[x][2];
|
||||
int y2_rocket = rockets[x][3];
|
||||
|
||||
int x_enemy = enemies[i][0];
|
||||
int y_enemy = enemies[i][1];
|
||||
bool check_init = x1_rocket!=0&&x2_rocket!=0&&x_enemy!=0&&y_enemy!=0;
|
||||
if (((x1_rocket == x_enemy && y1_rocket + 100 == y_enemy) || (x2_rocket == x_enemy && y2_rocket + 100 == y_enemy)) && live_enemies > 0 && check_init)
|
||||
{
|
||||
dma_display->drawCircle(enemies[i][0], enemies[i][1], 1, 0x0000);
|
||||
enemies[i][0] = 0;
|
||||
enemies[i][1] = 0;
|
||||
live_enemies--;
|
||||
Serial.println(live_enemies);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
draw_enemies();
|
||||
}
|
||||
void draw_enemy(int x, int y)
|
||||
{
|
||||
uint16_t color = 0x03FF;
|
||||
int _x = x;
|
||||
int _y = y;
|
||||
if (_y <= 64)
|
||||
{
|
||||
dma_display->fillCircle(_x, _y, 1, color);
|
||||
}
|
||||
else
|
||||
{
|
||||
_y = _y - 64;
|
||||
_x = _x + 128;
|
||||
|
||||
dma_display->drawPixel(_x, _y, color);
|
||||
}
|
||||
}
|
||||
void draw_rocket(int x_craft, int y_craft = 100)
|
||||
{
|
||||
unsigned long now = millis();
|
||||
if (now - period_shot >= speed_shot)
|
||||
{
|
||||
period_shot = now;
|
||||
// Serial.println("clear");
|
||||
for (int row = 0; row < num_rocket; row++)
|
||||
{
|
||||
for (int col = 0; col < 2; col++)
|
||||
{
|
||||
int x = rockets[row][col * 2];
|
||||
int y = rockets[row][col * 2 + 1] + y_craft;
|
||||
// dma_display->drawPixel(x,y,0x0000);
|
||||
uint16_t color = 0x0000;
|
||||
|
||||
int _x = x;
|
||||
int _y = y;
|
||||
if (_y <= 64)
|
||||
{
|
||||
dma_display->drawPixel(_x, _y, color);
|
||||
|
@ -464,16 +563,96 @@ void draw_spacecraft(int x, int y){
|
|||
|
||||
dma_display->drawPixel(_x, _y, color);
|
||||
}
|
||||
dma_display->drawPixel(_X,_y,color);
|
||||
rockets[row][col * 2 + 1] -= 1;
|
||||
if (rockets[row][col * 2 + 1] <= -110)
|
||||
{
|
||||
rockets[row][col * 2 + 1] = -2;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// Draw
|
||||
for (int row = 0; row < num_rocket; row++)
|
||||
{
|
||||
for (int col = 0; col < 2; col++)
|
||||
{
|
||||
if (rockets[row][col * 2 + 1] == -2)
|
||||
{
|
||||
rockets[row][0] = x_craft + 4;
|
||||
rockets[row][2] = x_craft + 21;
|
||||
}
|
||||
|
||||
int x = rockets[row][col * 2];
|
||||
int y = rockets[row][col * 2 + 1] + y_craft;
|
||||
if (y <= 0 || x == 0)
|
||||
continue;
|
||||
uint16_t color = 0xF9A0;
|
||||
|
||||
int _x = x;
|
||||
int _y = y;
|
||||
if (_y <= 64)
|
||||
{
|
||||
dma_display->drawPixel(_x, _y, color);
|
||||
}
|
||||
else
|
||||
{
|
||||
_y = _y - 64;
|
||||
_x = _x + 128;
|
||||
|
||||
dma_display->drawPixel(_x, _y, color);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
void draw_spacecraft(int x, int y = 100)
|
||||
{
|
||||
for (int i = 0; i < width; i++)
|
||||
{
|
||||
for (int j = 0; j < height; j++)
|
||||
{
|
||||
uint16_t color = aircraft[j * width + i];
|
||||
if (color == 0xFFFF || color == 0xFFDF || color == 0xFFFE || color == 0xFFBD || color == 0xFFBF)
|
||||
color = 0x0000;
|
||||
int _x = x + i;
|
||||
int _y = y + j;
|
||||
if (_y <= 64)
|
||||
{
|
||||
dma_display->drawPixel(_x, _y, color);
|
||||
}
|
||||
else
|
||||
{
|
||||
_y = _y - 64;
|
||||
_x = _x + 128;
|
||||
|
||||
dma_display->drawPixel(_x, _y, color);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
exist = true;
|
||||
// draw_rocket(x,y);
|
||||
}
|
||||
void setup()
|
||||
{
|
||||
Serial.begin(115200 * 2); // Đảm bảo baud rate khớp với baud rate của Python
|
||||
dma_display = new MatrixPanel_I2S_DMA(mxconfig);
|
||||
dma_display->begin(); // setup the LED matrix
|
||||
dma_display->setBrightness8(200); // 0-255
|
||||
dma_display->clearScreen();
|
||||
// draw_spacecraft(32, 32);
|
||||
Mode_game = true;
|
||||
// create_enemies();
|
||||
// draw_enemies();
|
||||
// draw_enemy(32,32);
|
||||
// draw_rocket(32,100);
|
||||
// draw_cat(10,10,20,20);
|
||||
// drawXbm565(10,10,20,20,CAT_bits,dma_display->color565(100,0,0));
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
// server.handleClient();
|
||||
|
||||
#pragma region Serial processing
|
||||
while (Serial.available() > 0)
|
||||
{
|
||||
|
@ -500,14 +679,14 @@ void loop()
|
|||
if (numRows == 1 && numCols == 0)
|
||||
{
|
||||
Mode_game = true;
|
||||
//dma_display->clearScreen();
|
||||
// dma_display->clearScreen();
|
||||
// Serial.println("Stick Man");
|
||||
}
|
||||
else if (numRows == 0 && numCols == 0)
|
||||
{
|
||||
Mode_game = false;
|
||||
// Serial.println("HungVat");
|
||||
//dma_display->clearScreen();
|
||||
// dma_display->clearScreen();
|
||||
}
|
||||
|
||||
int expectedSize = numRows * numCols * floatSize;
|
||||
|
@ -532,33 +711,28 @@ void loop()
|
|||
}
|
||||
else
|
||||
{
|
||||
if (!game_over)
|
||||
drawStickMan(int(data[0][0]), int(data[0][1]), int(data[0][2]));
|
||||
X_craft = int(data[0][0]);
|
||||
draw_spacecraft(X_craft);
|
||||
draw_rocket(X_craft);
|
||||
}
|
||||
|
||||
// Reset chỉ số chỉ mục sau khi xử lý
|
||||
|
||||
}
|
||||
bufferIndex = 0;
|
||||
}
|
||||
if (Mode_game)
|
||||
{
|
||||
if (game_over)
|
||||
{
|
||||
if (millis() - period_gameover >= reset_stickman)
|
||||
{
|
||||
game_over = false;
|
||||
dma_display->clearScreen();
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Stickman region
|
||||
if (Mode_game)
|
||||
{
|
||||
Drawbullet();
|
||||
Defend();
|
||||
if (exist)
|
||||
{
|
||||
draw_rocket(X_craft);
|
||||
if (live_enemies <= 0)
|
||||
{
|
||||
create_enemies();
|
||||
}
|
||||
draw_enemies();
|
||||
destroy_enemy();
|
||||
}
|
||||
}
|
||||
else // Hung Vat
|
||||
{
|
||||
|
@ -570,73 +744,3 @@ void loop()
|
|||
|
||||
// readDataFromSerial();
|
||||
}
|
||||
|
||||
// int x = int(data[row][0]);
|
||||
// int y = int(data[row][1]);
|
||||
// int x_in = int(data[0][0]);
|
||||
// int y_in = int(data[0][1]);
|
||||
|
||||
// if (x_in == 0 && y_in == 0)
|
||||
// {
|
||||
// mode = true;
|
||||
// }
|
||||
// else if (x_in == 255 && y_in == 255)
|
||||
// {
|
||||
// mode = false;
|
||||
// }
|
||||
// if (mode)
|
||||
// {
|
||||
// int *_range;
|
||||
// _range = drawStickMan(x, y);
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// // measure x dimension
|
||||
// int min_x = x - 1 - ((num_moi * 3) / 3);
|
||||
// int max_x = x + 1 + ((num_moi * 3) / 3);
|
||||
// int min_y = y - 1;
|
||||
// int max_y = y + 1;
|
||||
// for (int i = min_x; i <= max_x; i++)
|
||||
// {
|
||||
// for (int j = y - 1; j <= y + 1; j++)
|
||||
// {
|
||||
// if (j <= 32)
|
||||
// dma_display->drawPixelRGB888(i, j, 214, 24, 192);
|
||||
// else
|
||||
// dma_display->drawPixelRGB888(i, j, 214, 192, 24);
|
||||
// // reach moi
|
||||
// if (gen_moi == false && y<255)
|
||||
// {
|
||||
// drawRandomPoint(x, y, 5 + (num_moi * 3), false);
|
||||
|
||||
// gen_moi = true;
|
||||
// }
|
||||
// if (min_x <= x_moi + 1 && max_x > x_moi - 1 && min_y <= y_moi + 1 && max_y >= y_moi - 1)
|
||||
// {
|
||||
// reached = true;
|
||||
// num_moi += 1;
|
||||
// gen_moi = false;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// if (reached)
|
||||
// {
|
||||
// min_x = x - 1 - ((num_moi * 3) / 3);
|
||||
// max_x = x + 1 + ((num_moi * 3) / 3);
|
||||
// for (int i = min_x; i <= max_x; i++)
|
||||
// {
|
||||
// for (int j = y - 1; j <= y + 1; j++)
|
||||
// {
|
||||
// if (j <= 32)
|
||||
// dma_display->drawPixelRGB888(i, j, 214, 24, 192);
|
||||
// else
|
||||
// dma_display->drawPixelRGB888(i, j, 214, 192, 24);
|
||||
// }
|
||||
// }
|
||||
// reached = false;
|
||||
// }
|
||||
// if (gen_moi)
|
||||
// {
|
||||
// drawRandomPoint(x, y, 5 + (num_moi * 3), gen_moi);
|
||||
// }
|
||||
// }
|
135
src/spacecraft.h
135
src/spacecraft.h
|
@ -1,53 +1,100 @@
|
|||
#include <stdint.h>
|
||||
const uint16_t aircraft[20 * 20] = {
|
||||
0xFFFF, 0xFFDE, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFDF, 0xFFFF, 0xFFDF, 0xFFFF, 0xFFDF, 0xFFFF, 0xFFFF, 0xFFDF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFDF, 0xFFDF, 0xFFFF, 0xFFBF, 0xFFBE, 0xFFFF,
|
||||
0xFFFF, 0xFFBE, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFDF, 0xFFFF, 0xFFFF, 0xFFDF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFDF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFDF, 0xFFDF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xBE17, 0xC658, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFDF, 0xFFFF, 0xFFFF, 0xFFDF, 0xFFFF, 0xFFDF,
|
||||
0xCEBA, 0x636D, 0x740F, 0xC699, 0xF7BE, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFDF, 0xFFFF,
|
||||
0xFFDF, 0xFFBF, 0xFFFF, 0xFFFF, 0x8491, 0x8CF2, 0x8D13, 0x8491,
|
||||
0xEF9E, 0xFFFF, 0xFFDF, 0xFFDF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFDF, 0xFFFF, 0xFFBF, 0xFFFF, 0xFFFF, 0xD6FB,
|
||||
0x7C70, 0xA5F6, 0x9DB5, 0x84B2, 0xDF3C, 0xFFFF, 0xF77D, 0xFFDF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFDF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xEF7D, 0x94F2, 0x84B1, 0x63CD, 0x5BAD, 0x7C91,
|
||||
0x8CB2, 0xFFDF, 0xFFFF, 0xFF9E, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xF7BF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xF7BE, 0x7C0F,
|
||||
0x744F, 0x5BAC, 0x536C, 0x744F, 0x8470, 0xEFBE, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xEF9E, 0xFFFF, 0xFFDF, 0xFFFF,
|
||||
0xFFDF, 0xFFFF, 0xD699, 0xC678, 0x84B1, 0x744F, 0x84B1, 0x8491,
|
||||
0xBE37, 0xD6BA, 0xFFBF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xF7BF, 0xFFFF, 0xFFDF, 0xFFFF, 0xCE58, 0xAD95, 0xCE99,
|
||||
0x4AA9, 0x638C, 0x52EA, 0x530A, 0xD6DA, 0xADB5, 0xCE59, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFDF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xEF9D, 0x5AEA, 0xAD95, 0x8470, 0x73AD, 0x5B0A, 0x5AEA, 0x73AD,
|
||||
0x8450, 0xA554, 0x52EA, 0xEFBE, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xF7FE, 0xC678, 0x31E6, 0x8470, 0x9D12,
|
||||
0x5289, 0x5268, 0x5268, 0x5289, 0x9D13, 0x9D13, 0x3A47, 0xBE37,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xEFBE, 0xF7FF,
|
||||
0xB616, 0x4AC9, 0xADB5, 0x73CD, 0x8C2F, 0x41C6, 0x49C6, 0x83AE,
|
||||
0x8C50, 0xAD94, 0x3A47, 0xBE58, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFDF, 0xFFFF, 0xFFFF, 0xEFFE, 0xAE16, 0x21A4, 0x8CD1, 0xFFFE,
|
||||
0xFF9D, 0xC595, 0xC554, 0xFFDE, 0xFFDE, 0x9D12, 0x21C5, 0xAE16,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFDF, 0xFFFF, 0xF7DE, 0xF7FF,
|
||||
0xBE57, 0x8490, 0xFFFE, 0xF7BD, 0xFFFE, 0xEEFA, 0xFF7D, 0xFFBD,
|
||||
0xFFFF, 0xFFFF, 0x84B1, 0xBE58, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
|
||||
const uint16_t aircraft[26 * 26] = {
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xA4F2, 0xA4B1, 0xB28B, 0xDAAC, 0xDAAC, 0xB28B, 0xA491,
|
||||
0xA533, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000,
|
||||
0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xAD13, 0x9D12, 0xA4B1, 0xD20B, 0xD20B,
|
||||
0xA4B1, 0x9512, 0xA513, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xD3CD, 0xDBCD, 0xAC0E, 0x842E, 0x7BAC,
|
||||
0xC1EA, 0xC1EA, 0x7B8C, 0x840F, 0xAC0E, 0xDBAE, 0xDBAD, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xECB3, 0xDBEE, 0xDC2E, 0xBC2E,
|
||||
0x7C2F, 0x62C8, 0xC20A, 0xC1EA, 0x62A9, 0x842F, 0xC40E, 0xDC0E,
|
||||
0xDBEE, 0xD24A, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xA800, 0xDA09,
|
||||
0xE2CC, 0xBB0C, 0x6BAC, 0x9B0B, 0x924C, 0x9A6D, 0x9B0B, 0x73AC,
|
||||
0xBB0B, 0xE2CC, 0xD9C8, 0xC846, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000,
|
||||
0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xDBD0,
|
||||
0xDB6F, 0xDBAF, 0xDA0B, 0xBA4A, 0x62C9, 0xA26A, 0x5270, 0x6BB5,
|
||||
0xA28B, 0x62E9, 0xBA4A, 0xDA0B, 0xDBB0, 0xDB6F, 0xE4D2, 0xFE38,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFDF, 0xE472,
|
||||
0xE3D0, 0xD26B, 0xC989, 0xDA6C, 0xD98A, 0xC2CC, 0x92AA, 0xA9A9,
|
||||
0x81EC, 0x8AD0, 0xB1EA, 0x92AA, 0xC2CC, 0xD98A, 0xDA6C, 0xC989,
|
||||
0xD26B, 0xE3B0, 0xDB0D, 0xD451, 0xFFFF, 0xFFFF, 0xFFFF, 0xE2CD,
|
||||
0xE38F, 0xE24B, 0xECB2, 0xCACC, 0xC28B, 0xD9CA, 0xD16A, 0xBA6A,
|
||||
0xB9C9, 0xB129, 0x5A2E, 0x7374, 0xB16A, 0xB9C9, 0xB26A, 0xD169,
|
||||
0xD9CA, 0xC28C, 0xCACC, 0xECB2, 0xE26B, 0xE3B0, 0xE32E, 0xFFFF,
|
||||
0xE3AF, 0xDA2B, 0xE491, 0xE2AC, 0xDA0B, 0xB9A8, 0xB989, 0xC149,
|
||||
0xC149, 0xC22A, 0xC169, 0xC169, 0xA22C, 0xB30F, 0xC1AA, 0xC149,
|
||||
0xC20A, 0xC149, 0xC149, 0xB989, 0xB9A9, 0xDA0B, 0xE2AC, 0xE4B2,
|
||||
0xD22B, 0xE3F0, 0xE411, 0xDA8C, 0xD1EB, 0xD18A, 0xD169, 0xB168,
|
||||
0xC989, 0xB908, 0xC149, 0xE26B, 0xD9C9, 0xC168, 0xA927, 0xA926,
|
||||
0xC168, 0xD9C9, 0xE26B, 0xC149, 0xB908, 0xC989, 0xB168, 0xD169,
|
||||
0xD98A, 0xD20B, 0xD2AC, 0xEC51, 0xDA4A, 0xC9A9, 0xB948, 0xC148,
|
||||
0xB148, 0xA147, 0xC969, 0xC929, 0xD149, 0xC168, 0x9907, 0x7885,
|
||||
0xA107, 0xA127, 0x7885, 0x9906, 0xC188, 0xD149, 0xC929, 0xC969,
|
||||
0xA147, 0xB148, 0xC149, 0xB948, 0xC9A9, 0xDA4A, 0x9967, 0x9106,
|
||||
0xB1A7, 0xA967, 0x7906, 0x8146, 0xA927, 0xB948, 0xB908, 0xA907,
|
||||
0xB128, 0xA107, 0xB167, 0xB168, 0xA107, 0xB128, 0xA927, 0xB908,
|
||||
0xB948, 0xA127, 0x8146, 0x8106, 0xA987, 0xB9A7, 0x9106, 0x9967,
|
||||
0xFB2D, 0x7126, 0xC2E7, 0xBAA7, 0x0006, 0x40C4, 0x68C5, 0x8906,
|
||||
0xB148, 0x9947, 0xB148, 0xB148, 0xB9A7, 0xB187, 0xB128, 0xB148,
|
||||
0xA147, 0xB148, 0x8906, 0x68C5, 0x38A4, 0x1805, 0xBAA6, 0xC2E7,
|
||||
0x7126, 0xFB0C, 0x7579, 0x6DBB, 0x95F9, 0x95F9, 0x2D7E, 0x5A0A,
|
||||
0x7085, 0x38A4, 0x7906, 0x7106, 0x88E6, 0xA967, 0xB206, 0xB206,
|
||||
0xA967, 0x88E6, 0x6906, 0x7906, 0x40A4, 0x7084, 0x5A0B, 0x2DBE,
|
||||
0x95D9, 0x9DF9, 0x6DBA, 0x7559, 0x657A, 0x657A, 0x7E1C, 0x7DFC,
|
||||
0x5D19, 0x759A, 0x4800, 0x50E5, 0x10A3, 0x0003, 0xA226, 0xC2E6,
|
||||
0xAA05, 0xAA05, 0xC2E6, 0xA227, 0x0024, 0x20E4, 0x50C5, 0x5800,
|
||||
0x759A, 0x5D39, 0x7DFC, 0x7E1C, 0x655A, 0x6D5A, 0x6D7A, 0x7579,
|
||||
0x555C, 0x5D5B, 0x2CFE, 0x8DFB, 0xFFFF, 0x7ACC, 0x48E5, 0x5A08,
|
||||
0x6B6A, 0x7493, 0x9514, 0x94F4, 0x7493, 0x634A, 0x5A08, 0x4905,
|
||||
0x4905, 0xFFFF, 0x85DA, 0x2D3E, 0x555B, 0x555B, 0x7579, 0x6D7A,
|
||||
0x0011, 0x551B, 0x657A, 0x655A, 0x655A, 0x961B, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0x6D9B, 0x6D7B, 0x9E9D, 0xD77F, 0xD77F, 0xA69D, 0x657A,
|
||||
0x6D9B, 0xFFFF, 0xFFFF, 0xFFFF, 0x85FB, 0x5D5A, 0x655A, 0x655A,
|
||||
0x555B, 0x34FB, 0xEFBF, 0x7D99, 0x85B9, 0x85B9, 0x85B9, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0x6D9B, 0x6D9B, 0xBEFD, 0xEFBF, 0xEFBF,
|
||||
0xBEFD, 0x6D9B, 0x6D9B, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x7D78,
|
||||
0x7D78, 0x7D78, 0x7558, 0xCEFC, 0xFFFF, 0xE6B9, 0xF6D9, 0xDEB9,
|
||||
0xDE99, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x7DBA, 0x757A, 0x861C,
|
||||
0xAEDE, 0xAEDE, 0x861C, 0x6D59, 0x759A, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xE699, 0xE699, 0xFF5A, 0xE698, 0xFFFF, 0x0000, 0xCE9A,
|
||||
0xCE9A, 0xCE9A, 0xCE9A, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x5CD7,
|
||||
0x555B, 0x657B, 0x557C, 0x557C, 0x657B, 0x555C, 0x551A, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xC67A, 0xC659, 0xC67A, 0x63F0, 0xFFFF,
|
||||
0xFFFF, 0xD6BA, 0xD6BA, 0xD6DB, 0xC679, 0xFFFF, 0x0000, 0x0000,
|
||||
0x0000, 0xA6BD, 0x75BB, 0x75BB, 0x557C, 0x557C, 0x759B, 0x6D9B,
|
||||
0xA67B, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x63F1, 0xCEBB,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x8DB8, 0x045F, 0x5D7B, 0x5D7C,
|
||||
0x041F, 0x95B8, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x7579, 0x5D7B,
|
||||
0x6D9B, 0x6D9B, 0x5D7B, 0x7558, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF,
|
||||
0xFFFF, 0x7D9A, 0x85BA, 0x85BA, 0x7D9A, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0x0000, 0xFFFF, 0xFFFF, 0x85B9, 0x8DD9, 0x8DDA, 0x8599, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xDEBA, 0xDEBA, 0xE6DA,
|
||||
0xDEDA, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF,
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
|
||||
};
|
||||
|
||||
const uint16_t enemy[8 * 8] = {
|
||||
0x6B0B, 0x4A07, 0x320A, 0x62E9, 0x5267, 0x2187, 0x41E6, 0x62EA,
|
||||
0x39A6, 0x5A07, 0x3985, 0x83CC, 0x6B2A, 0x3985, 0x5227, 0x3185,
|
||||
0x1987, 0x49A4, 0x6A44, 0xAC29, 0x8B67, 0x51A3, 0x3964, 0x21A7,
|
||||
0x4964, 0x7AC8, 0x7329, 0xBC05, 0x9B43, 0x5246, 0x6A67, 0x5184,
|
||||
0x4164, 0x732A, 0x6B2A, 0xAB64, 0x8B03, 0x4A47, 0x6288, 0x4964,
|
||||
0x5ACA, 0x4A06, 0x2923, 0x6A43, 0x6243, 0x2944, 0x3984, 0x41E6,
|
||||
0xB554, 0x7269, 0x3104, 0x28E2, 0x2902, 0x39A5, 0x5123, 0x5164,
|
||||
0x83AE, 0x49C6, 0x15FD, 0x6984, 0x6964, 0xF800, 0x41A5, 0x5A27,
|
||||
};
|
Loading…
Reference in New Issue