From 0c4d62413a747939dc16181addffb701aaf48b74 Mon Sep 17 00:00:00 2001 From: Aldrik Ramaekers Date: Sat, 4 Nov 2023 14:49:55 +0100 Subject: fix aim --- build/zombies.exe | Bin 1996747 -> 1996787 bytes src/game.c | 7 +++++-- src/players.c | 30 ++++++++++++++---------------- 3 files changed, 19 insertions(+), 18 deletions(-) diff --git a/build/zombies.exe b/build/zombies.exe index 2d3722b..80a9e1f 100644 Binary files a/build/zombies.exe and b/build/zombies.exe differ diff --git a/src/game.c b/src/game.c index 90ce7a5..2222b86 100644 --- a/src/game.c +++ b/src/game.c @@ -337,6 +337,7 @@ void update_client(platform_window* window) { } static void move_camera(platform_window* window) { + static camera _camera_buffer; float speedx = window->width / 1000.0f; float diffx = (_next_camera_pos.x - _global_camera.x); if (abs(diffx) <= speedx) diffx = 0.0f; @@ -353,8 +354,10 @@ static void move_camera(platform_window* window) { float dirx = diffx/length; float diry = diffy/length; - _global_camera.x += dirx*speedx; - _global_camera.y += diry*speedy; + _camera_buffer.x += dirx*speedx; + _camera_buffer.y += diry*speedy; + _global_camera.x = (int)_camera_buffer.x; + _global_camera.y = (int)_camera_buffer.y; //_global_camera.x = _next_camera_pos.x; //_global_camera.y = _next_camera_pos.y; } diff --git a/src/players.c b/src/players.c index 8e6f14e..cd92566 100644 --- a/src/players.c +++ b/src/players.c @@ -210,27 +210,25 @@ void take_player_input(platform_window* window) { add_message_to_outgoing_queuex(create_protocol_user_look(player_id, gun_offset_x, gun_offset_y), *global_state.client); } - // shooting - if (is_left_down()) { - float dirx = (_global_mouse.x - (window->width/2)); - float diry = (_global_mouse.y - (window->height/2)); + { + box box = get_render_box_of_square(window, (vec3f){p->playerx, p->playery, p->height}, (vec3f){1.0,1.0,1.0f}); + float dirx = (_global_mouse.x - (box.tl_u.x - _global_camera.x)); + float diry = (_global_mouse.y - (box.tl_u.y - _global_camera.y)); double length = sqrt(dirx * dirx + diry * diry); dirx /= length; diry /= length; - network_message message = create_protocol_user_shoot(player_id, dirx, diry); - add_message_to_outgoing_queuex(message, *global_state.client); - } + // shooting + if (is_left_down()) { + network_message message = create_protocol_user_shoot(player_id, dirx, diry); + add_message_to_outgoing_queuex(message, *global_state.client); + } - // throwing - if (is_right_clicked()) { - float dirx = (_global_mouse.x - (window->width/2)); - float diry = (_global_mouse.y - (window->height/2)); - double length = sqrt(dirx * dirx + diry * diry); - dirx /= length; - diry /= length; - - add_message_to_outgoing_queuex(create_protocol_user_throw(player_id, dirx, diry, THROWABLE_GRENADE), *global_state.client); + // throwing + if (is_right_clicked()) { + network_message message = create_protocol_user_throw(player_id, dirx, diry, THROWABLE_GRENADE); + add_message_to_outgoing_queuex(message, *global_state.client); + } } } -- cgit v1.2.3-70-g09d2