5 changed files with 242 additions and 1 deletions
@ -0,0 +1,147 @@
|
||||
import os |
||||
|
||||
tiles = { |
||||
"floor": [ |
||||
"00000000", |
||||
"00010000", |
||||
"00100000", |
||||
"00000000", |
||||
"00000001", |
||||
"00000010", |
||||
"00000000", |
||||
"00001000", |
||||
], |
||||
"hedge": [ |
||||
"12121121", |
||||
"22322322", |
||||
"12112112", |
||||
"23223223", |
||||
"11212112", |
||||
"22322322", |
||||
"12112121", |
||||
"23223223", |
||||
], |
||||
"hedge_top": [ |
||||
"00000000", |
||||
"01111111", |
||||
"12121121", |
||||
"22322322", |
||||
"11212112", |
||||
"23223223", |
||||
"12112121", |
||||
"22322322", |
||||
], |
||||
"frame_tl": [ |
||||
"33333333", |
||||
"31111111", |
||||
"31222222", |
||||
"31200000", |
||||
"31200000", |
||||
"31200000", |
||||
"31200000", |
||||
"31200000", |
||||
], |
||||
"frame_tr": [ |
||||
"33333333", |
||||
"11111113", |
||||
"22222213", |
||||
"00000213", |
||||
"00000213", |
||||
"00000213", |
||||
"00000213", |
||||
"00000213", |
||||
], |
||||
"frame_bl": [ |
||||
"31200000", |
||||
"31200000", |
||||
"31200000", |
||||
"31200000", |
||||
"31200000", |
||||
"31222222", |
||||
"31111111", |
||||
"33333333", |
||||
], |
||||
"frame_br": [ |
||||
"00000213", |
||||
"00000213", |
||||
"00000213", |
||||
"00000213", |
||||
"00000213", |
||||
"22222213", |
||||
"11111113", |
||||
"33333333", |
||||
], |
||||
"frame_t": [ |
||||
"33333333", |
||||
"11111111", |
||||
"22222222", |
||||
"00000000", |
||||
"00000000", |
||||
"00000000", |
||||
"00000000", |
||||
"00000000", |
||||
], |
||||
"frame_b": [ |
||||
"00000000", |
||||
"00000000", |
||||
"00000000", |
||||
"00000000", |
||||
"00000000", |
||||
"22222222", |
||||
"11111111", |
||||
"33333333", |
||||
], |
||||
"frame_l": [ |
||||
"31200000", |
||||
"31200000", |
||||
"31200000", |
||||
"31200000", |
||||
"31200000", |
||||
"31200000", |
||||
"31200000", |
||||
"31200000", |
||||
], |
||||
"frame_r": [ |
||||
"00000213", |
||||
"00000213", |
||||
"00000213", |
||||
"00000213", |
||||
"00000213", |
||||
"00000213", |
||||
"00000213", |
||||
"00000213", |
||||
], |
||||
} |
||||
|
||||
def to_gb_format(lines): |
||||
bytes_arr = [] |
||||
for line in lines: |
||||
lo = 0 |
||||
hi = 0 |
||||
for i, char in enumerate(line): |
||||
val = int(char) |
||||
if val & 1: |
||||
lo |= (1 << (7 - i)) |
||||
if val & 2: |
||||
hi |= (1 << (7 - i)) |
||||
bytes_arr.append(lo) |
||||
bytes_arr.append(hi) |
||||
return bytes_arr |
||||
|
||||
with open("src/mockup_gfx.c", "w") as f: |
||||
f.write('#include "mockup_gfx.h"\n\n') |
||||
f.write('const unsigned char MockupTileData[] = {\n') |
||||
|
||||
for name, art in tiles.items(): |
||||
b = to_gb_format(art) |
||||
f.write(' // ' + name + '\n') |
||||
f.write(' ' + ', '.join(f"0x{val:02X}" for val in b) + ',\n') |
||||
|
||||
f.write('};\n') |
||||
|
||||
with open("src/mockup_gfx.h", "w") as f: |
||||
f.write('#ifndef MOCKUP_GFX_H\n#define MOCKUP_GFX_H\n\n') |
||||
f.write('extern const unsigned char MockupTileData[];\n') |
||||
f.write('#endif\n') |
||||
|
||||
print("Generato mockup_gfx.c e .h") |
||||
@ -0,0 +1,26 @@
|
||||
#include "mockup_gfx.h" |
||||
|
||||
const unsigned char MockupTileData[] = { |
||||
// floor
|
||||
0x00, 0x00, 0x10, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x00, |
||||
// hedge
|
||||
0xAD, 0x52, 0x24, 0xFF, 0xB6, 0x49, 0x49, 0xFF, 0xD6, 0x29, 0x24, 0xFF, 0xB5, 0x4A, 0x49, 0xFF, |
||||
// hedge_top
|
||||
0x00, 0x00, 0x7F, 0x00, 0xAD, 0x52, 0x24, 0xFF, 0xD6, 0x29, 0x49, 0xFF, 0xB5, 0x4A, 0x24, 0xFF, |
||||
// frame_tl
|
||||
0xFF, 0xFF, 0xFF, 0x80, 0xC0, 0xBF, 0xC0, 0xA0, 0xC0, 0xA0, 0xC0, 0xA0, 0xC0, 0xA0, 0xC0, 0xA0, |
||||
// frame_tr
|
||||
0xFF, 0xFF, 0xFF, 0x01, 0x03, 0xFD, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, |
||||
// frame_bl
|
||||
0xC0, 0xA0, 0xC0, 0xA0, 0xC0, 0xA0, 0xC0, 0xA0, 0xC0, 0xA0, 0xC0, 0xBF, 0xFF, 0x80, 0xFF, 0xFF, |
||||
// frame_br
|
||||
0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0xFD, 0xFF, 0x01, 0xFF, 0xFF, |
||||
// frame_t
|
||||
0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
||||
// frame_b
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, |
||||
// frame_l
|
||||
0xC0, 0xA0, 0xC0, 0xA0, 0xC0, 0xA0, 0xC0, 0xA0, 0xC0, 0xA0, 0xC0, 0xA0, 0xC0, 0xA0, 0xC0, 0xA0, |
||||
// frame_r
|
||||
0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, 0x03, 0x05, |
||||
}; |
||||
@ -0,0 +1,5 @@
|
||||
#ifndef MOCKUP_GFX_H |
||||
#define MOCKUP_GFX_H |
||||
|
||||
extern const unsigned char MockupTileData[]; |
||||
#endif |
||||
@ -0,0 +1,59 @@
|
||||
#include <gb/gb.h> |
||||
#include "mockup_gfx.h" |
||||
|
||||
// ID dei tile in base all'ordine nel dizionario python:
|
||||
// 0: floor
|
||||
// 1: hedge
|
||||
// 2: hedge_top
|
||||
// 3: frame_tl
|
||||
// 4: frame_tr
|
||||
// 5: frame_bl
|
||||
// 6: frame_br
|
||||
// 7: frame_t
|
||||
// 8: frame_b
|
||||
// 9: frame_l
|
||||
// 10: frame_r
|
||||
|
||||
const uint8_t level_map[18][20] = { |
||||
{3, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 4}, |
||||
{9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10}, |
||||
{9, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0,10}, |
||||
{9, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,10}, |
||||
{9, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,10}, |
||||
{9, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,10}, |
||||
{9, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,10}, |
||||
{9, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,10}, |
||||
{9, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0,10}, |
||||
{9, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10}, |
||||
{9, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1,10}, |
||||
{9, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0,10}, |
||||
{9, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0,10}, |
||||
{9, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0,10}, |
||||
{9, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0,10}, |
||||
{9, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,10}, |
||||
{9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10}, |
||||
{5, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 6} |
||||
}; |
||||
|
||||
void main(void) { |
||||
DISPLAY_OFF; |
||||
|
||||
// Palette GBDK standard
|
||||
BGP_REG = 0b11100100; |
||||
|
||||
set_bkg_data(0, 11, MockupTileData); |
||||
|
||||
for (uint8_t y = 0; y < 18; y++) { |
||||
for (uint8_t x = 0; x < 20; x++) { |
||||
uint8_t t = level_map[y][x]; |
||||
set_bkg_tiles(x, y, 1, 1, &t); |
||||
} |
||||
} |
||||
|
||||
SHOW_BKG; |
||||
DISPLAY_ON; |
||||
|
||||
while(1) { |
||||
wait_vbl_done(); |
||||
} |
||||
} |
||||
Loading…
Reference in new issue