From 4283a369307e5d0e40245220e18dac94468f8ff4 Mon Sep 17 00:00:00 2001 From: Aldrik Ramaekers Date: Tue, 2 Jan 2024 20:58:46 +0100 Subject: player sprite --- build/data/imgs/objects/metal_wall.png | Bin 2091 -> 346 bytes build/data/imgs/objects/metal_wall2.png | Bin 3684 -> 362 bytes .../data/imgs/players/Blue/Gunner_Blue_Crouch.png | Bin 0 -> 1496 bytes build/data/imgs/players/Blue/Gunner_Blue_Death.png | Bin 0 -> 3615 bytes build/data/imgs/players/Blue/Gunner_Blue_Idle.png | Bin 0 -> 1600 bytes build/data/imgs/players/Blue/Gunner_Blue_Jump.png | Bin 0 -> 1183 bytes build/data/imgs/players/Blue/Gunner_Blue_Run.png | Bin 0 -> 2471 bytes build/data/imgs/players/body.png | Bin 77183 -> 0 bytes build/data/imgs/players/helmet.png | Bin 7205 -> 0 bytes build/data/imgs/tiles/tile2.png | Bin 0 -> 18025 bytes build/data/imgs/tiles/tile_cobblestone.png | Bin 42822 -> 18002 bytes build/zombies.exe | Bin 2110414 -> 2109456 bytes data/imgs/objects/metal_wall.png | Bin 2091 -> 346 bytes data/imgs/objects/metal_wall2.png | Bin 3684 -> 362 bytes data/imgs/players/body.png | Bin 77183 -> 0 bytes data/imgs/players/helmet.png | Bin 7205 -> 0 bytes data/imgs/tiles/tile2.png | Bin 0 -> 18025 bytes data/imgs/tiles/tile_cobblestone.png | Bin 42822 -> 18002 bytes include/asset_defs.h | 6 +- src/asset_defs.c | 16 +++-- src/guns.c | 11 +-- src/players.c | 74 +++++---------------- 22 files changed, 31 insertions(+), 76 deletions(-) create mode 100644 build/data/imgs/players/Blue/Gunner_Blue_Crouch.png create mode 100644 build/data/imgs/players/Blue/Gunner_Blue_Death.png create mode 100644 build/data/imgs/players/Blue/Gunner_Blue_Idle.png create mode 100644 build/data/imgs/players/Blue/Gunner_Blue_Jump.png create mode 100644 build/data/imgs/players/Blue/Gunner_Blue_Run.png delete mode 100644 build/data/imgs/players/body.png delete mode 100644 build/data/imgs/players/helmet.png create mode 100644 build/data/imgs/tiles/tile2.png delete mode 100644 data/imgs/players/body.png delete mode 100644 data/imgs/players/helmet.png create mode 100644 data/imgs/tiles/tile2.png diff --git a/build/data/imgs/objects/metal_wall.png b/build/data/imgs/objects/metal_wall.png index 569355a..12507f9 100644 Binary files a/build/data/imgs/objects/metal_wall.png and b/build/data/imgs/objects/metal_wall.png differ diff --git a/build/data/imgs/objects/metal_wall2.png b/build/data/imgs/objects/metal_wall2.png index c01df17..828113d 100644 Binary files a/build/data/imgs/objects/metal_wall2.png and b/build/data/imgs/objects/metal_wall2.png differ diff --git a/build/data/imgs/players/Blue/Gunner_Blue_Crouch.png b/build/data/imgs/players/Blue/Gunner_Blue_Crouch.png new file mode 100644 index 0000000..7c86829 Binary files /dev/null and b/build/data/imgs/players/Blue/Gunner_Blue_Crouch.png differ diff --git a/build/data/imgs/players/Blue/Gunner_Blue_Death.png b/build/data/imgs/players/Blue/Gunner_Blue_Death.png new file mode 100644 index 0000000..bce1a15 Binary files /dev/null and b/build/data/imgs/players/Blue/Gunner_Blue_Death.png differ diff --git a/build/data/imgs/players/Blue/Gunner_Blue_Idle.png b/build/data/imgs/players/Blue/Gunner_Blue_Idle.png new file mode 100644 index 0000000..7f05bb1 Binary files /dev/null and b/build/data/imgs/players/Blue/Gunner_Blue_Idle.png differ diff --git a/build/data/imgs/players/Blue/Gunner_Blue_Jump.png b/build/data/imgs/players/Blue/Gunner_Blue_Jump.png new file mode 100644 index 0000000..c28a071 Binary files /dev/null and b/build/data/imgs/players/Blue/Gunner_Blue_Jump.png differ diff --git a/build/data/imgs/players/Blue/Gunner_Blue_Run.png b/build/data/imgs/players/Blue/Gunner_Blue_Run.png new file mode 100644 index 0000000..133cf41 Binary files /dev/null and b/build/data/imgs/players/Blue/Gunner_Blue_Run.png differ diff --git a/build/data/imgs/players/body.png b/build/data/imgs/players/body.png deleted file mode 100644 index 96ab485..0000000 Binary files a/build/data/imgs/players/body.png and /dev/null differ diff --git a/build/data/imgs/players/helmet.png b/build/data/imgs/players/helmet.png deleted file mode 100644 index a1f36d8..0000000 Binary files a/build/data/imgs/players/helmet.png and /dev/null differ diff --git a/build/data/imgs/tiles/tile2.png b/build/data/imgs/tiles/tile2.png new file mode 100644 index 0000000..8371f2c Binary files /dev/null and b/build/data/imgs/tiles/tile2.png differ diff --git a/build/data/imgs/tiles/tile_cobblestone.png b/build/data/imgs/tiles/tile_cobblestone.png index 32c78ac..f8e329b 100644 Binary files a/build/data/imgs/tiles/tile_cobblestone.png and b/build/data/imgs/tiles/tile_cobblestone.png differ diff --git a/build/zombies.exe b/build/zombies.exe index a07e1fd..7a62eac 100644 Binary files a/build/zombies.exe and b/build/zombies.exe differ diff --git a/data/imgs/objects/metal_wall.png b/data/imgs/objects/metal_wall.png index 569355a..12507f9 100644 Binary files a/data/imgs/objects/metal_wall.png and b/data/imgs/objects/metal_wall.png differ diff --git a/data/imgs/objects/metal_wall2.png b/data/imgs/objects/metal_wall2.png index c01df17..828113d 100644 Binary files a/data/imgs/objects/metal_wall2.png and b/data/imgs/objects/metal_wall2.png differ diff --git a/data/imgs/players/body.png b/data/imgs/players/body.png deleted file mode 100644 index 96ab485..0000000 Binary files a/data/imgs/players/body.png and /dev/null differ diff --git a/data/imgs/players/helmet.png b/data/imgs/players/helmet.png deleted file mode 100644 index a1f36d8..0000000 Binary files a/data/imgs/players/helmet.png and /dev/null differ diff --git a/data/imgs/tiles/tile2.png b/data/imgs/tiles/tile2.png new file mode 100644 index 0000000..8371f2c Binary files /dev/null and b/data/imgs/tiles/tile2.png differ diff --git a/data/imgs/tiles/tile_cobblestone.png b/data/imgs/tiles/tile_cobblestone.png index 32c78ac..f8e329b 100644 Binary files a/data/imgs/tiles/tile_cobblestone.png and b/data/imgs/tiles/tile_cobblestone.png differ diff --git a/include/asset_defs.h b/include/asset_defs.h index 13e1e54..417e890 100644 --- a/include/asset_defs.h +++ b/include/asset_defs.h @@ -14,6 +14,8 @@ font* fnt_24; font* fnt_20; font* fnt_16; font* fnt_12; +font* fnt_8; +font* fnt_4; // Icons image* img_icon_bullets; @@ -42,8 +44,8 @@ image* img_grenade_explode; image* img_molotov_explode; // Players -image* img_helmet; -image* img_body; +image* img_gunner_blue_run; +image* img_gunner_blue_idle; image* img_alien_run; // Guns diff --git a/src/asset_defs.c b/src/asset_defs.c index ac414e2..24491fa 100644 --- a/src/asset_defs.c +++ b/src/asset_defs.c @@ -16,6 +16,8 @@ void load_assets() { fnt_20 = assets_load_font(Aleo_Regular, Aleo_Regular + Aleo_Regular_Size, 20); fnt_16 = assets_load_font(Aleo_Regular, Aleo_Regular + Aleo_Regular_Size, 16); fnt_12 = assets_load_font(Aleo_Regular, Aleo_Regular + Aleo_Regular_Size, 12); + fnt_8 = assets_load_font(Aleo_Regular, Aleo_Regular + Aleo_Regular_Size, 8); + fnt_4 = assets_load_font(Aleo_Regular, Aleo_Regular + Aleo_Regular_Size, 4); // Icons img_icon_bullets = assets_load_image_from_file("data/imgs/bullets.png"); @@ -45,8 +47,8 @@ void load_assets() { img_metal_wall2 = assets_load_image_from_file("data/imgs/objects/metal_wall2.png"); // Players - img_helmet = assets_load_image_from_file("data/imgs/players/helmet.png"); - img_body = assets_load_image_from_file("data/imgs/players/body.png"); + img_gunner_blue_run = assets_load_image_from_file("data/imgs/players/Blue/Gunner_Blue_Run.png"); + img_gunner_blue_idle = assets_load_image_from_file("data/imgs/players/Blue/Gunner_Blue_Idle.png"); img_alien_run = assets_load_image_from_file("data/imgs/players/alien_run.png"); // Guns @@ -94,13 +96,17 @@ font* get_font(platform_window* window, float scale) { float window_scale = window->width / 800.0f; float diff = window_scale - 1.0f; - int index_of_original = (int)(scale / 0.2f); - int index_to_return = index_of_original + (int)(diff/0.2f); + float step = 1/5.0f; + + int index_of_original = (int)(scale / step); + int index_to_return = index_of_original + (int)(diff/step); if (index_to_return < 0) index_to_return = 0; - if (index_to_return > 10) index_to_return = 10; + if (index_to_return > 12) index_to_return = 12; font* arr[] = { + fnt_4, + fnt_8, fnt_12, // scale = 0.2 fnt_16, fnt_20, diff --git a/src/guns.c b/src/guns.c index 78d917c..66fb1c1 100644 --- a/src/guns.c +++ b/src/guns.c @@ -6,16 +6,7 @@ gun get_gun_by_type(gun_type type) { } float get_gun_size(gun_type type) { - switch (type) - { - case GUN_NOVA: return 1.5f; break; - case GUN_MP5: return 1.5f; break; - - default: - break; - } - - return 0; + return 0.5f; } image* get_image_of_gun(gun_type type) { diff --git a/src/players.c b/src/players.c index 302c535..0f6087c 100644 --- a/src/players.c +++ b/src/players.c @@ -10,7 +10,7 @@ float get_bullet_size(platform_window* window) { } float get_player_size_in_tile() { - return 0.8f; + return 1.5f; } float get_player_size(platform_window* window) { @@ -59,7 +59,9 @@ void spawn_player(u32 id, network_client client) { players[i].guntype = GUN_MP5; players[i].height = 0.0f; players[i].client = client; - players[i].sprite = create_sprite(img_body, 4, 256, 256, 0.0f); + players[i].sprite = create_sprite(img_gunner_blue_run, 6, 48, 48, 0.1f); + players[i].sprite.zoom = 1.1f; + players[i].gun_sprite = create_sprite(img_gun_mp5, 4, 256, 256, 0.0f); players[i].direction = DIRECTION_DOWN; players[i].connection_state = CONNECTED; @@ -466,75 +468,29 @@ void draw_player(platform_window* window, player* p, int index) { float player_render_x = player_pos.x; float player_render_y = player_pos.y; - vec2f gun_pos = world_pos_to_screen_pos(window, p->gunx - (p->dirx*GUN_OFFSET_FROM_PLAYER), p->guny - (p->diry*GUN_OFFSET_FROM_PLAYER), p->gun_height); - float gun_size = info.tile_width * get_gun_size(p->guntype); - - // Gun + // Body { - gun_pos.x -= gun_size/2; - gun_pos.y -= gun_size/2; - + sprite_frame frame = sprite_get_frame(img_gunner_blue_run, &p->sprite); float rads = -atan2(p->diry, p->dirx); - renderer->render_set_rotation(-rads); - - vec2f tl = (vec2f){0.0f, 0.0f}, tr = (vec2f){1.0f, 0.0f}, bl = (vec2f){0.0f, 1.0f}, br = (vec2f){1.0f, 1.0f}; if (rads > M_PI/2 || rads < -M_PI/2) { - tl = (vec2f){1.0f, 0.0f}; - tr = (vec2f){0.0f, 0.0f}; - bl = (vec2f){1.0f, 1.0f}; - br = (vec2f){0.0f, 1.0f}; - - renderer->render_set_rotation(-rads+M_PI); + frame = sprite_swap_frame_horizontally(frame); } - - image* gun_img = get_image_of_gun(p->guntype); - renderer->render_image_quad_partial(gun_img, - gun_pos.x, gun_pos.y, - gun_pos.x, gun_pos.y + gun_size, - gun_pos.x + gun_size, gun_pos.y + gun_size, - gun_pos.x + gun_size, gun_pos.y, - tl, tr, bl, br); - - renderer->render_set_rotation(0.0f); - } - - // Body - { - sprite_frame frame = sprite_get_frame(img_body, &p->sprite); - renderer->render_image_quad_partial(img_body, + + renderer->render_image_quad_partial(img_gunner_blue_run, player_render_x, player_render_y, player_render_x, player_render_y + size, player_render_x + size, player_render_y + size, player_render_x + size, player_render_y, frame.tl, frame.tr, frame.bl, frame.br); - - renderer->render_image_quad_partial_tint(img_body, - player_render_x, player_render_y, - player_render_x, player_render_y + size, - player_render_x + size, player_render_y + size, - player_render_x + size, player_render_y, - frame.tl, frame.tr, frame.bl, frame.br, get_color_tint_by_player_index(index)); - } - - player_render_y -= size*0.7; - - // Helmet - { - float rads = atan2(p->diry, p->dirx); - renderer->render_set_rotation(rads + M_PI); - renderer->render_image(img_helmet, player_render_x, player_render_y, size, size); - renderer->render_image_tint(img_helmet, - player_render_x, player_render_y, - size, size, get_color_tint_by_player_index(index)); - renderer->render_set_rotation(0.0f); } - int name_x = player_render_x + (size)/2 - (renderer->calculate_text_width(fnt_20, name))/2; - int name_y = player_render_y - fnt_20->px_h - 5; - renderer->render_text(fnt_20, name_x+1, name_y+1, name, rgba(0,0,0,120)); - renderer->render_text(fnt_20, name_x, name_y, name, rgb(255,255,255)); + font* name_fnt = get_font(window, 0.2f); + int name_x = player_render_x + (size)/2 - (renderer->calculate_text_width(name_fnt, name))/2; + int name_y = player_render_y - name_fnt->px_h - 5; + renderer->render_text(name_fnt, name_x+1, name_y+1, name, rgba(0,0,0,120)); + renderer->render_text(name_fnt, name_x, name_y, name, rgb(255,255,255)); - p->gun_height = p->height+0.5; + p->gun_height = p->height+0.2; if (p->connection_state == DISCONNECTED) { float icon_h = (size)/2; -- cgit v1.2.3-70-g09d2