diff --git a/screenshot.png b/screenshot.png index 25e7516..92515a2 100644 Binary files a/screenshot.png and b/screenshot.png differ diff --git a/src/main.c b/src/main.c index 6e38fe2..628fcac 100644 --- a/src/main.c +++ b/src/main.c @@ -27,27 +27,31 @@ void main(void) { wait_vbl_done(); // Invia i dati grafici (array TileData) dal banco ROM alla VRAM a partire dall'indice 0. - set_bkg_data(0, 2, TileData); - - // La mappa background in memoria hardware è grande 32x32 tiles. - // Riempiamo preventivamente tutta quest'area nascosta con il tile Nero (indice 1), - // utile per mascherare i bordi quando lo schermo verrà "scrollato" successivamente. - for (y = 0; y < 32; y++) { - for (x = 0; x < 32; x++) { - set_bkg_tiles(x, y, 1, 1, &black); - } - } + set_bkg_data(0, 5, TileData); // Carichiamo 5 tile: 1 strada + 4 siepi // Inizializza il seme dei numeri casuali. initrand(DIV_REG); + // La mappa background in memoria hardware è grande 32x32 tiles. + // Riempiamo preventivamente tutta quest'area nascosta con siepi casuali + for (y = 0; y < 32; y++) { + for (x = 0; x < 32; x++) { + uint8_t rand_hedge = 1 + (rand() % 4); + set_bkg_tiles(x, y, 1, 1, &rand_hedge); + } + } + // Invoca la funzione logica per popolare l'array `maze` in memoria. generate_maze(); // Riversa l'array generato `maze` nella memoria del Background (VRAM Mappa). for (y = 0; y < MAZE_HEIGHT; y++) { for (x = 0; x < MAZE_WIDTH; x++) { - set_bkg_tiles(x, y, 1, 1, &maze[y][x]); + uint8_t tile_idx = maze[y][x]; + if (tile_idx == 1) { // Se è un muro, scegli una siepe variante casuale + tile_idx = 1 + (rand() % 4); + } + set_bkg_tiles(x, y, 1, 1, &tile_idx); } } diff --git a/src/tiles.c b/src/tiles.c index f7e99ab..ebdb7ab 100644 --- a/src/tiles.c +++ b/src/tiles.c @@ -13,8 +13,19 @@ const unsigned char TileData[] = { 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, - // Tile 1: Completamente nero (tutti i bit a 1) - // Usato per disegnare i muri del labirinto. - 0xFF,0xFF, 0xFF,0xFF, 0xFF,0xFF, 0xFF,0xFF, - 0xFF,0xFF, 0xFF,0xFF, 0xFF,0xFF, 0xFF,0xFF + // Tile 1: Siepe da giardino (variante 0) + 0xC3,0xBD, 0x90,0x6F, 0x24,0xFB, 0x49,0xFE, + 0x12,0xEF, 0x44,0xFB, 0x88,0x7F, 0xA3,0xDD, + + // Tile 2: Siepe da giardino (variante 1) + 0x8C,0x7B, 0x22,0xFD, 0x41,0xBF, 0x14,0xEF, + 0x82,0xFD, 0x20,0xDF, 0x48,0xF7, 0x11,0xFE, + + // Tile 3: Siepe da giardino (variante 2) + 0x42,0xBF, 0x90,0xEF, 0x05,0xFB, 0x22,0xFD, + 0x88,0x7F, 0x01,0xFE, 0x48,0xF7, 0x24,0xDF, + + // Tile 4: Siepe da giardino (variante 3) + 0x14,0xFB, 0x82,0x7F, 0x20,0xDF, 0x88,0xF7, + 0x03,0xFD, 0x50,0xBF, 0x04,0xFB, 0x21,0xFE };