diff options
| -rw-r--r-- | dat.h | 3 | ||||
| -rw-r--r-- | game.c | 9 | ||||
| -rwxr-xr-x | img2map | 37 | ||||
| -rw-r--r-- | map.png | bin | 314 -> 655 bytes |
4 files changed, 38 insertions, 11 deletions
@@ -43,6 +43,9 @@ extern int ebufi; extern char map_data[]; extern int map_width, map_height; +extern float player_x, player_y; +extern int ghostcount; +extern float ghostpositions[][2]; extern Entity *player; @@ -33,13 +33,16 @@ entinit() { player = allocentity(); player->type = EPLAYER; + player->body.pos[0] = player_x; + player->body.pos[1] = player_x; player->body.size[0] = ENTITY_SIZE; player->body.size[1] = ENTITY_SIZE; - for(int i = 0; i < 10; i++) { + + for(int i = 0; i < ghostcount; i++) { Entity *e = allocentity(); e->type = EGHOST; - e->body.pos[0] = rand() % 800; - e->body.pos[1] = rand() % 600; + e->body.pos[0] = ghostpositions[i][0] * ENTITY_SIZE * 2; + e->body.pos[1] = ghostpositions[i][1] * ENTITY_SIZE * 2; e->body.size[0] = ENTITY_SIZE; e->body.size[1] = ENTITY_SIZE; } @@ -3,19 +3,40 @@ import sys from PIL import Image -img = Image.open(sys.argv[1]).convert('1') +img = Image.open(sys.argv[1]).convert('RGB') width, height = img.size -print(f"int map_width = {width};") -print(f"int map_height = {height};") -print("char map_data[] = {") +map_pixels = [ ] +player_position = (0, 0) + +ghosts = [] for y in range(height): linha = [] for x in range(width): - pixel = img.getpixel((x, y)) - valor = '0' if pixel == 0 else '1' - linha.append(valor) - print(f" {', '.join(linha)},") + r, g, b = img.getpixel((x, y)) + valor = '0' + if (r == 0xFF) and (g == 0xFF) and (b == 0xFF): + valor = '1' + + if (r == 0x00) and (g == 0x00) and (b == 0xFF): + player_position = (x, y) + + if (r == 0xFF) and (g == 0x00) and (b == 0x00): + ghosts.append((x, y)) + + map_pixels.append(valor) +print(f"int map_width = {width};") +print(f"int map_height = {height};") +print(f"float player_x = {player_position[0]};") +print(f"float player_y = {player_position[1]};") +print(f"int ghostcount = {len(ghosts)};") + +print("float ghostpositions[][2] = {") +print("".join([ f"{{ {str(x[0])}, {str(x[1])} }}, " for x in ghosts ])) +print("};") + +print("char map_data[] = {") +print("".join([ f"{x}," for x in map_pixels ])) print("};") Binary files differ |
