feat: Add randomized hedge tiles for visual variety
This commit is contained in:
Binary file not shown.
|
Before Width: | Height: | Size: 772 B After Width: | Height: | Size: 4.5 KiB |
+15
-11
@@ -27,27 +27,31 @@ void main(void) {
|
|||||||
wait_vbl_done();
|
wait_vbl_done();
|
||||||
|
|
||||||
// Invia i dati grafici (array TileData) dal banco ROM alla VRAM a partire dall'indice 0.
|
// Invia i dati grafici (array TileData) dal banco ROM alla VRAM a partire dall'indice 0.
|
||||||
set_bkg_data(0, 2, TileData);
|
set_bkg_data(0, 5, TileData); // Carichiamo 5 tile: 1 strada + 4 siepi
|
||||||
|
|
||||||
// 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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Inizializza il seme dei numeri casuali.
|
// Inizializza il seme dei numeri casuali.
|
||||||
initrand(DIV_REG);
|
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.
|
// Invoca la funzione logica per popolare l'array `maze` in memoria.
|
||||||
generate_maze();
|
generate_maze();
|
||||||
|
|
||||||
// Riversa l'array generato `maze` nella memoria del Background (VRAM Mappa).
|
// Riversa l'array generato `maze` nella memoria del Background (VRAM Mappa).
|
||||||
for (y = 0; y < MAZE_HEIGHT; y++) {
|
for (y = 0; y < MAZE_HEIGHT; y++) {
|
||||||
for (x = 0; x < MAZE_WIDTH; x++) {
|
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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+15
-4
@@ -13,8 +13,19 @@ const unsigned char TileData[] = {
|
|||||||
0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00,
|
0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00,
|
||||||
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)
|
// Tile 1: Siepe da giardino (variante 0)
|
||||||
// Usato per disegnare i muri del labirinto.
|
0xC3,0xBD, 0x90,0x6F, 0x24,0xFB, 0x49,0xFE,
|
||||||
0xFF,0xFF, 0xFF,0xFF, 0xFF,0xFF, 0xFF,0xFF,
|
0x12,0xEF, 0x44,0xFB, 0x88,0x7F, 0xA3,0xDD,
|
||||||
0xFF,0xFF, 0xFF,0xFF, 0xFF,0xFF, 0xFF,0xFF
|
|
||||||
|
// 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
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user