X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;ds=sidebyside;f=fishladder.c;h=fcdd58d4fe014c5d4ae3de204315e036e7a29af6;hb=c87000a5e48d2cf3afdf308189767951eb819c09;hp=e90a8a527a1f89742bf31ee007545adb01ead367;hpb=0c6380402b4225e2d5e27063e2e49c911b4aa3fb;p=fishladder.git diff --git a/fishladder.c b/fishladder.c index e90a8a5..fcdd58d 100644 --- a/fishladder.c +++ b/fishladder.c @@ -1211,16 +1211,23 @@ void vg_update(void) r2 = (float)world.h / (float)world.w, size; - size = ( r2 < r1? (float)(world.w+5) * 0.5f: ((float)world.h * 0.5f) / r1 ) + 2.5f; - m3x3_projection( m_projection, -size, size, -size*r1, size*r1 ); + static float size_current = 2.0f; + static v3f origin_current = { 0.0f, 0.0f, 0.0f }; + + size = ( r2 < r1? (float)(world.w+5) * 0.5f: ((float)(world.h+5) * 0.5f) / r1 ) + 0.5f; v3f origin; - origin[0] = floorf( -0.5f * ((float)world.w-3.0f) ); + origin[0] = floorf( -0.5f * ((float)world.w-4.5f) ); origin[1] = floorf( -0.5f * world.h ); origin[2] = 0.0f; + // Lerp towards target + size_current = vg_lerpf( size_current, size, vg_time_delta * 6.0f ); + v2_lerp( origin_current, origin, vg_time_delta * 6.0f, origin_current ); + + m3x3_projection( m_projection, -size_current, size_current, -size_current*r1, size_current*r1 ); m3x3_identity( m_view ); - m3x3_translate( m_view, origin ); + m3x3_translate( m_view, origin_current ); m3x3_mul( m_projection, m_view, vg_pv ); vg_projection_update();