diff options
| -rw-r--r-- | build/data/imgs/players/helmet.png | bin | 0 -> 7205 bytes | |||
| -rw-r--r-- | build/zombies.exe | bin | 2107392 -> 2106909 bytes | |||
| -rw-r--r-- | data/imgs/players/helmet.png | bin | 0 -> 7205 bytes | |||
| -rw-r--r-- | include/asset_defs.h | 1 | ||||
| -rw-r--r-- | include/math_helper.h | 11 | ||||
| -rw-r--r-- | src/asset_defs.c | 1 | ||||
| -rw-r--r-- | src/players.c | 41 |
7 files changed, 31 insertions, 23 deletions
diff --git a/build/data/imgs/players/helmet.png b/build/data/imgs/players/helmet.png Binary files differnew file mode 100644 index 0000000..a1f36d8 --- /dev/null +++ b/build/data/imgs/players/helmet.png diff --git a/build/zombies.exe b/build/zombies.exe Binary files differindex f1f1115..b700aab 100644 --- a/build/zombies.exe +++ b/build/zombies.exe diff --git a/data/imgs/players/helmet.png b/data/imgs/players/helmet.png Binary files differnew file mode 100644 index 0000000..a1f36d8 --- /dev/null +++ b/data/imgs/players/helmet.png diff --git a/include/asset_defs.h b/include/asset_defs.h index 65161c3..ef40df0 100644 --- a/include/asset_defs.h +++ b/include/asset_defs.h @@ -42,6 +42,7 @@ image* img_molotov_explode; // Players image* img_player_running; +image* img_helmet; // Other image* img_zombie_chunk_hand; diff --git a/include/math_helper.h b/include/math_helper.h index f45e903..c0a236a 100644 --- a/include/math_helper.h +++ b/include/math_helper.h @@ -9,11 +9,12 @@ #define MAP_RENDER_DEPTH renderer->set_render_depth(1); -#define DROP_RENDER_DEPTH(_h) renderer->set_render_depth(4 + ceil(_h)); -#define BULLET_RENDER_DEPTH(_h) renderer->set_render_depth(5 + ceil(_h)); -#define THROWABLE_RENDER_DEPTH(_h) renderer->set_render_depth(3 + ceil(_h)); -#define OBJECT_RENDER_DEPTH(_h) renderer->set_render_depth(50 + ceil(_h)); -#define OVERLAY_RENDER_DEPTH() renderer->set_render_depth(100); +#define DROP_RENDER_DEPTH(_h) //renderer->set_render_depth(4 + ceil(_h)); +#define BULLET_RENDER_DEPTH(_h) //renderer->set_render_depth(5 + ceil(_h)); +#define THROWABLE_RENDER_DEPTH(_h) //renderer->set_render_depth(3 + ceil(_h)); +#define PLAYER_RENDER_DEPTH(_h) //renderer->set_render_depth(20 + ceil(_h)); +#define OBJECT_RENDER_DEPTH(_h) //renderer->set_render_depth(50 + ceil(_h)); +#define OVERLAY_RENDER_DEPTH() //renderer->set_render_depth(100); bool onSegment(vec2f p, vec2f q, vec2f r); int orientation(vec2f p, vec2f q, vec2f r); diff --git a/src/asset_defs.c b/src/asset_defs.c index a9cddfe..a44963f 100644 --- a/src/asset_defs.c +++ b/src/asset_defs.c @@ -44,6 +44,7 @@ void load_assets() { // Players img_player_running = assets_load_image_from_file("data/imgs/players/player1_running.png"); + img_helmet = assets_load_image_from_file("data/imgs/players/helmet.png"); // Other img_zombie_chunk_hand = assets_load_image_from_file("data/imgs/zombie_chunk_hand.png"); diff --git a/src/players.c b/src/players.c index 30af803..52e1e7c 100644 --- a/src/players.c +++ b/src/players.c @@ -14,7 +14,8 @@ float get_player_size_in_tile() { } float get_player_size(platform_window* window) { - int player_size = get_tile_width(window) * get_player_size_in_tile(); + float player_size = get_tile_width(window) * get_player_size_in_tile(); + return player_size; } int get_player_count() { @@ -448,28 +449,30 @@ color get_color_tint_by_player_index(int index) { rgb(0,0,128), rgb(128,0,128), }; - return colors[index]; + color c = colors[index]; + c.a = 100; + return c; } void draw_player(platform_window* window, player* p, int index) { - float size = get_player_size_in_tile(); + float size = get_player_size(window); map_info info = get_map_info(window); char* name = get_player_name_by_player_index(index); - box box = get_render_box_of_square(window, (vec3f){p->playerx, p->playery, p->height}, (vec3f){size,size,1.0f}); - sprite_frame frame = sprite_get_frame(&p->sprite); - renderer->render_image_quad_partial_tint(img_player_running, - box.tl_u.x, box.tl_u.y, - box.bl_d.x, box.bl_d.y, - box.br_d.x, box.br_d.y, - box.tr_u.x, box.tr_u.y, - frame.tl, frame.tr, frame.bl, frame.br, get_color_tint_by_player_index(index)); - - float player_render_x = box.tl_u.x; - float player_render_y = box.tl_u.y; + vec2f player_pos = world_pos_to_screen_pos(window, p->playerx, p->playery, p->height); + float player_render_x = player_pos.x; + float player_render_y = player_pos.y; - int name_x = player_render_x + (info.tile_width*size)/2 - (renderer->calculate_text_width(fnt_20, name))/2; + 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)); @@ -477,8 +480,8 @@ void draw_player(platform_window* window, player* p, int index) { p->gun_height = p->height+0.5; if (p->connection_state == DISCONNECTED) { - float icon_h = (box.tr_u.x - box.tl_u.x)/2; - renderer->render_image(img_disconnected, box.tl_u.x + (icon_h/3), box.tr_u.y - icon_h, icon_h, icon_h); + float icon_h = (size)/2; + renderer->render_image(img_disconnected, player_render_x + (icon_h/3), player_render_y - icon_h, icon_h, icon_h); } if (p->id == player_id) { @@ -493,12 +496,14 @@ void draw_players(platform_window* window) { for (int i = 0; i < MAX_PLAYERS; i++) { if (!players[i].active) continue; - OBJECT_RENDER_DEPTH((int)(players[i].playery+size)); float height = get_height_of_tile_under_coords(players[i].playerx, players[i].playery); players[i].height = height; + BULLET_RENDER_DEPTH((int)(players[i].playery+size)); draw_player_bullet_cone(window, &players[i]); + + PLAYER_RENDER_DEPTH((int)(players[i].playery+size)); draw_player(window, &players[i], i); } } |
