JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
Now have a "barrier" (which can fall behind) to enforce minimum speed.
authorJoshua Grams <josh@qualdan.com>
Wed, 6 Jul 2005 22:04:29 +0000 (22:04 +0000)
committerJoshua Grams <josh@qualdan.com>
Wed, 6 Jul 2005 22:04:29 +0000 (22:04 +0000)
main.c

diff --git a/main.c b/main.c
index db95bb4..c2e6601 100644 (file)
--- a/main.c
+++ b/main.c
@@ -76,6 +76,7 @@ float shipx = XSIZE/2, shipy = YSIZE/2;       // X position, 0..XSIZE
 float shipdx = SCREENDXMIN, shipdy = 0.0;      // Change in X position per tick.
 float screendx = SCREENDXMIN, screendy = 0.0;
 float xscroll, yscroll;
 float shipdx = SCREENDXMIN, shipdy = 0.0;      // Change in X position per tick.
 float screendx = SCREENDXMIN, screendy = 0.0;
 float xscroll, yscroll;
+float back_dist;
 float framelen;  // this controls the speed of everything that moves.
 
 float bangx, bangy, bangdx, bangdy;
 float framelen;  // this controls the speed of everything that moves.
 
 float bangx, bangy, bangdx, bangdy;
@@ -711,10 +712,15 @@ gameloop() {
                        tmp /= -25;
                        tmp = ((screendx * (framelen - 12)) + (tmp * framelen)) / 12;
                        screendx = -tmp;
                        tmp /= -25;
                        tmp = ((screendx * (framelen - 12)) + (tmp * framelen)) / 12;
                        screendx = -tmp;
-                       if(screendx < SCREENDXMIN) screendx=SCREENDXMIN;
+
+                       // taper off if we would hit the barrier in under 2 seconds.
+                       if(back_dist + (screendx - SCREENDXMIN)*2*20*opt_gamespeed < 0) {
+                               screendx = SCREENDXMIN - (back_dist/(2*20*opt_gamespeed));
+                       }
 
                        xscroll = screendx * framelen;
                        yscroll = screendy * framelen;
 
                        xscroll = screendx * framelen;
                        yscroll = screendy * framelen;
+                       back_dist += (screendx - SCREENDXMIN)*framelen;
 
                        shipx -= xscroll;
                        shipy -= yscroll;
 
                        shipx -= xscroll;
                        shipy -= yscroll;