From 1c827d7b280351dacc34a6618a57244e56c587e9 Mon Sep 17 00:00:00 2001 From: bgiraudr Date: Sun, 22 Aug 2021 02:39:01 +0200 Subject: [PATCH] draw interior without moving camera and remove excessive tileset --- assets-cg/converters.py | 25 +- assets-cg/maps/inside/interior_1.tmx | 54 ++-- assets-cg/maps/inside/tileset.tsx | 399 --------------------------- assets-cg/maps/tileset.tsx | 7 +- assets-cg/tileset.png | Bin 54569 -> 54738 bytes include/define.h | 6 +- include/map.h | 10 +- src/engine.c | 39 ++- src/main.c | 4 +- src/map.c | 9 + 10 files changed, 100 insertions(+), 453 deletions(-) delete mode 100644 assets-cg/maps/inside/tileset.tsx diff --git a/assets-cg/converters.py b/assets-cg/converters.py index 1620cdf..37a38a5 100644 --- a/assets-cg/converters.py +++ b/assets-cg/converters.py @@ -14,16 +14,25 @@ def convert(input, output, params, target): def convert_map(input, output, params, target): TILE_AIR = 0 TILE_SOLID = 1 - TILE_DOOR = 2 - TILE_CHARACTER = 3 + TILE_DOOR_IN = 2 + TILE_DOOR_OUT = 3 + TILE_CHARACTER = 4 TILE_BRIDGE = -1 #only for bridge detection to avoid solid behind with open(input, "r") as jsonData: data = json.load(jsonData) - #find the tileset using the location of the input - tileset = open(input.replace(input.split("/")[-1], "tileset.json"), "r") + #find the tileset in use. it's a relative path (like ../tileset.tsx) + nameTileset = data["tilesets"][0]["source"].replace(".tsx","") + #the name of the tileset without the .something + nameTilesetFree = nameTileset.split("/")[-1] + #count the number of "back" (cd ..) to locate the tileset on the computer + nbRetour = nameTileset.count("..")+1 + #create the tileset absolute path + tilesetPath = "/".join(input.split("/")[:-nbRetour]) + "/" + nameTileset.split("/")[-1] + ".json" + + tileset = open(tilesetPath, "r") data_tileset = json.load(tileset) tileset.close() @@ -39,8 +48,10 @@ def convert_map(input, output, params, target): value = TILE_AIR elif type == "solid": value = TILE_SOLID - elif type == "door": - value = TILE_DOOR + elif type == "door_in": + value = TILE_DOOR_IN + elif type == "door_out": + value = TILE_DOOR_OUT elif type == "character": value = TILE_CHARACTER elif type == "bridge": @@ -58,7 +69,7 @@ def convert_map(input, output, params, target): o = fxconv.ObjectData() o += fxconv.u32(w) + fxconv.u32(h) + fxconv.u32(nblayer) - o += fxconv.ref("img_tileset") + o += fxconv.ref(f"img_{nameTilesetFree}") #generation of the collision map (take the maximum of the layer except for bridges) #bridges are always walkable diff --git a/assets-cg/maps/inside/interior_1.tmx b/assets-cg/maps/inside/interior_1.tmx index 977b53f..e8bee6f 100644 --- a/assets-cg/maps/inside/interior_1.tmx +++ b/assets-cg/maps/inside/interior_1.tmx @@ -1,35 +1,49 @@ - + -285,285,285,285,285,285,285,285,285,286,285,285, -285,286,286,286,286,286,286,286,286,286,285,285, -285,286,285,286,286,286,286,286,286,286,285,285, -285,286,285,286,1,1,285,1,39,1,1,1, -285,286,285,1,36,39,1,1,1,33,1,1, -285,286,285,1,1,35,33,1,1,1,1,1, -285,286,285,286,1,30,1,286,285,286,285,285, -285,286,285,286,285,286,285,286,285,286,285,285, -285,286,285,285,285,286,285,286,285,286,285,285, -285,285,752,285,285,285,285,285,285,286,285,285 +2,3,2,1,3,3,2,3,2,1,1,3, +1,6,6,6,1,3,2,3,2,1,2,2, +3,6,6,74,76,1,1,74,76,3,1,1, +1,6,2,103,105,1,1,103,105,1,1,1, +1,6,2,103,105,39,1,103,105,33,1,1, +1,6,1,103,78,75,75,77,105,1,1,1, +2,6,3,132,133,106,107,133,134,1,3,1, +2,3,2,2,1,132,134,3,2,2,1,3, +2,3,2,1,3,2,3,2,2,1,1,3, +1,2,0,1,2,2,2,1,3,3,1,3 -224,225,225,225,225,225,225,225,225,226,0,29, -20,21,0,0,0,0,0,0,0,0,0,58, -49,50,0,0,0,0,0,0,0,0,0,0, +248,249,249,249,249,249,249,249,249,249,249,251, +277,0,0,0,635,636,637,638,0,0,0,280, +277,0,0,0,664,665,666,667,0,0,0,280, +277,0,0,0,693,694,695,696,0,0,0,280, +277,0,0,245,722,723,724,725,245,0,0,280, +277,0,0,274,751,752,753,754,274,0,0,280, +277,0,0,303,0,0,0,0,303,0,0,280, +277,0,0,0,0,0,0,0,0,0,0,280, +277,0,0,0,0,0,0,0,0,0,0,280, +306,307,238,308,250,250,250,250,250,250,250,309 + + + + 0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,24,25,0,0, -0,0,0,0,0,0,0,0,53,54,0,0 +0,0,0,0,0,0,0,0,294,294,294,0, +0,0,0,0,0,0,0,0,0,294,294,0, +0,0,0,0,0,0,0,0,0,294,294,0, +0,0,0,0,0,0,0,0,0,0,294,0, +0,0,0,0,0,0,0,29,0,0,294,0, +0,0,0,0,0,0,0,58,0,0,294,0, +0,0,0,0,0,0,0,0,0,0,294,0, +0,0,0,0,0,0,0,0,0,0,294,0, +0,0,0,0,0,0,0,0,0,0,0,0 diff --git a/assets-cg/maps/inside/tileset.tsx b/assets-cg/maps/inside/tileset.tsx deleted file mode 100644 index 53c4100..0000000 --- a/assets-cg/maps/inside/tileset.tsx +++ /dev/null @@ -1,399 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/assets-cg/maps/tileset.tsx b/assets-cg/maps/tileset.tsx index e00d5ac..502667b 100644 --- a/assets-cg/maps/tileset.tsx +++ b/assets-cg/maps/tileset.tsx @@ -63,6 +63,7 @@ + @@ -190,15 +191,15 @@ - + - + - + diff --git a/assets-cg/tileset.png b/assets-cg/tileset.png index e66d5da92cd8402866f635daba3cfc3e29d2b44f..8a202528a601c9b9a40b57a1cebe143847f56fc5 100644 GIT binary patch delta 32424 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 delta 32263 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 #include "engine.h" +#include struct Map { /*width, height and the number of layer of the map (max 2)*/ @@ -17,8 +18,9 @@ struct Map { enum map_state { TILE_AIR = 0, TILE_SOLID = 1, - TILE_DOOR = 2, - TILE_CHARACTER = 3, + TILE_DOOR_IN = 2, + TILE_DOOR_OUT = 3, + TILE_CHARACTER = 4, }; /*check if a tile is walkable*/ @@ -26,4 +28,6 @@ int map_walkable(struct Map const *map, int x, int y); /*get the tile under the player*/ int map_get_player_tile(struct Game const *game); -void generate_interior_map(struct Game *game); \ No newline at end of file +void generate_interior_map(struct Game *game); + +bool is_map_larger(struct Map *map); \ No newline at end of file diff --git a/src/engine.c b/src/engine.c index f3f3749..cd6c70d 100644 --- a/src/engine.c +++ b/src/engine.c @@ -41,9 +41,15 @@ void engine_draw_map(struct Game const *game) { unsigned int tile_y = TILE_SIZE * (tile_id / TILESET_WIDTH); //provisoire le temps de trouver une manière propre - dsubimage(x * TILE_SIZE - x_offset%TILE_SIZE - game->player->anim.dx * 3, - y * TILE_SIZE - y_offset%TILE_SIZE - game->player->anim.dy * 3, game->map->tileset, - tile_x, tile_y, TILE_SIZE, TILE_SIZE, DIMAGE_NONE); + if(is_map_larger(game->map)) { + dsubimage(x * TILE_SIZE - x_offset%TILE_SIZE - game->player->anim.dx * 3, + y * TILE_SIZE - y_offset%TILE_SIZE - game->player->anim.dy * 3, game->map->tileset, + tile_x, tile_y, TILE_SIZE, TILE_SIZE, DIMAGE_NONE); + } else { + dsubimage(x * TILE_SIZE - x_offset%TILE_SIZE, + y * TILE_SIZE - y_offset%TILE_SIZE, game->map->tileset, + tile_x, tile_y, TILE_SIZE, TILE_SIZE, DIMAGE_NONE); + } } } } @@ -53,14 +59,19 @@ void engine_draw_map(struct Game const *game) { /*draw the player*/ void engine_draw_player(struct Game const *game) { - if(game->map->w > DWIDTH / TILE_SIZE + 1 && - game->map->h > DHEIGHT / TILE_SIZE + 1) { - dframe(game->player->show_x * 16, game->player->show_y * 16 - 5, game->player->anim.img); //draw the player 5 pixel up + if(is_map_larger(game->map)) { + dframe(game->player->show_x * TILE_SIZE, + game->player->show_y * TILE_SIZE - 5, + game->player->anim.img); //draw the player 5 pixel up + } else { - int offset_map_x = (DWIDTH / TILE_SIZE - game->map->w + 1)/2; - int offset_map_y = (DHEIGHT / TILE_SIZE - game->map->h + 1)/2; - dframe((game->player->x + offset_map_x) * 16, - (game->player->y + offset_map_y) * 16 - 5, game->player->anim.img); //draw the player 5 pixel up + const int offset_map_x = (DWIDTH / TILE_SIZE - game->map->w + 1)/2; + const int offset_map_y = (DHEIGHT / TILE_SIZE - game->map->h + 1)/2; + + dframe( + (game->player->x + offset_map_x) * TILE_SIZE + game->player->anim.dx*3, + (game->player->y + offset_map_y) * TILE_SIZE - 5 + game->player->anim.dy*3, + game->player->anim.img); //draw the player 5 pixel up } dprint(1,1,C_BLACK,"%d:%d",game->player->x, game->player->y); } @@ -77,8 +88,7 @@ int engine_move(struct Game *game, int direction) { game->player->x += dx; game->player->y += dy; - if(game->map->w > DWIDTH / TILE_SIZE + 1 && - game->map->h > DHEIGHT / TILE_SIZE + 1) { + if(is_map_larger(game->map)) { game->camera->x += dx*16; game->camera->y += dy*16; } @@ -123,10 +133,11 @@ void engine_action(struct Game const *game, int action) { /*check the current position of the player. To perform action depends of his location*/ void engine_check_position(struct Game *game) { int player_curr_tile = map_get_player_tile(game); - if(player_curr_tile == TILE_DOOR) { + if(player_curr_tile == TILE_DOOR_IN) { engine_set_background(game, C_BLACK); generate_interior_map(game); - } else { + } + if(player_curr_tile == TILE_DOOR_OUT) { engine_set_background(game, C_WHITE); } } \ No newline at end of file diff --git a/src/main.c b/src/main.c index 9b63d8c..e296c15 100644 --- a/src/main.c +++ b/src/main.c @@ -28,8 +28,8 @@ int main(void) { struct Player player = { .x = 32, .y = 30, - .x_mid = 7, - .y_mid = 2, + .x_mid = 6, + .y_mid = 1, .show_x = 12, .show_y = 7, .direction = DIR_DOWN, diff --git a/src/map.c b/src/map.c index faa7330..8572b16 100644 --- a/src/map.c +++ b/src/map.c @@ -24,4 +24,13 @@ void generate_interior_map(struct Game *game) { set_player_xy(game->player, 3,3); game->camera->x = in_1.w/2 * TILE_SIZE + game->player->x_mid; game->camera->y = in_1.h/2 * TILE_SIZE + game->player->y_mid; +} + +/*return true if the map is larger than the screen. false otherwise*/ +bool is_map_larger(struct Map *map) { + if(map->w > DWIDTH / TILE_SIZE + 1 && map->h > DHEIGHT / TILE_SIZE + 1) { + return true; + } else { + return false; + } } \ No newline at end of file