diff options
| author | Aldrik Ramaekers <aldrik@amftech.nl> | 2023-11-04 14:49:55 +0100 |
|---|---|---|
| committer | Aldrik Ramaekers <aldrik@amftech.nl> | 2023-11-04 14:49:55 +0100 |
| commit | 0c4d62413a747939dc16181addffb701aaf48b74 (patch) | |
| tree | 6d03f0271c7ebc67230caa5972d065834b2bbab2 | |
| parent | 9f57cd3ec64a3dc98d4ffe406f630963e82d6935 (diff) | |
fix aim
| -rw-r--r-- | build/zombies.exe | bin | 1996747 -> 1996787 bytes | |||
| -rw-r--r-- | src/game.c | 7 | ||||
| -rw-r--r-- | src/players.c | 30 |
3 files changed, 19 insertions, 18 deletions
diff --git a/build/zombies.exe b/build/zombies.exe Binary files differindex 2d3722b..80a9e1f 100644 --- a/build/zombies.exe +++ b/build/zombies.exe @@ -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); + } } } |
