From 68f26d6267708e76af28e7790c708948a90379b3 Mon Sep 17 00:00:00 2001 From: hgn Date: Sat, 28 Jan 2023 10:13:38 +0000 Subject: [PATCH] a simple CCD algortihm for walking --- maps_src/mp_gridmap.mdl | Bin 1338480 -> 1388464 bytes player_device_walk.h | 30 +++++++++++++++++++++++++++++- skaterift.c | 2 +- 3 files changed, 30 insertions(+), 2 deletions(-) diff --git a/maps_src/mp_gridmap.mdl b/maps_src/mp_gridmap.mdl index 810f659590d16edcf44b9483b4aa760d445df82c..7c4cb3f459191d20d81835297ab027a4d70f8b15 100644 GIT binary patch delta 96182 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 delta 47989 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.v, k_rb_delta*substep, mtx[3] ); - debug_capsule( mtx, w->collider.radius, w->collider.height, VG__YELOW ); + + + v3f lwr_prev, + lwr_now, + lwr_offs = { 0.0f, w->collider.radius, 0.0f }; + + v3_add( lwr_offs, player->prev_position, lwr_prev ); + v3_add( lwr_offs, player->rb.co, lwr_now ); + + v3f movedelta; + v3_sub( player->rb.co, player->prev_position, movedelta ); + + float movedist = v3_length( movedelta ); + + if( movedist > 0.3f ) + { + float t, sr = w->collider.radius-0.04f; + v3f n; + + if( spherecast_world( lwr_prev, lwr_now, sr, &t, n ) != -1 ) + { + v3_lerp( lwr_prev, lwr_now, vg_maxf(0.01f,t), player->rb.co ); + player->rb.co[1] -= w->collider.radius; + rb_update_transform( &player->rb ); + + v3_add( player->rb.co, (v3f){0.0f, 1.0f, 0.0f}, mtx[3] ); + debug_capsule( mtx, w->collider.radius, w->collider.height, VG__RED ); + } + } } VG_STATIC void player_walk_ui( player_interface *player, diff --git a/skaterift.c b/skaterift.c index 518ac43..e032ccc 100644 --- a/skaterift.c +++ b/skaterift.c @@ -237,7 +237,7 @@ VG_STATIC void vg_load(void) player_use_avatar( &localplayer, &localplayer_avatar ); player_use_mesh( &localplayer, &localplayer_meshes[0] ); player_use_device( &localplayer, &player_device_walk, &localplayer_walk ); - player_use_device( &localplayer, &player_device_skate, &localplayer_skate ); + //player_use_device( &localplayer, &player_device_skate, &localplayer_skate ); /* --------------------- */ -- 2.25.1