add BREAK_RATE to fix fast fly-off

This commit is contained in:
Josh Holtrop 2011-10-12 13:47:10 -04:00
parent fb5e36b8c4
commit 56efb5b713

View File

@ -19,7 +19,8 @@ using namespace std;
#define RING_LAYER_DIST 10 #define RING_LAYER_DIST 10
#define XLATE_RATE 0.02 #define XLATE_RATE 0.02
#define REVOLUTION_TIME 15000 #define REVOLUTION_TIME 15000
#define DESTROY_DIST 250 #define DESTROY_DIST 200
#define BREAK_RATE 0.03
Tunnel::Tunnel() Tunnel::Tunnel()
{ {
@ -34,10 +35,10 @@ Tunnel::~Tunnel()
void Tunnel::getRandomBreakAxis(float (*axis)[3]) void Tunnel::getRandomBreakAxis(float (*axis)[3])
{ {
double alpha = rand() / (double)RAND_MAX * 2.0 * M_PI; double alpha = rand() / (double)RAND_MAX * 2.0 * M_PI;
double beta = rand() / (double)RAND_MAX * (M_PI / 4.0); double beta = rand() / (double)RAND_MAX * M_PI_2;
(*axis)[0] = cos(alpha) * sin(beta); (*axis)[0] = cos(alpha) * sin(beta);
(*axis)[2] = sin(alpha) * sin(beta); (*axis)[2] = sin(alpha) * sin(beta);
(*axis)[1] = cos(beta); (*axis)[1] = 0.5 + cos(beta);
} }
float Tunnel::getRandomBreakSpinSpeed() float Tunnel::getRandomBreakSpinSpeed()
@ -89,9 +90,9 @@ bool Tunnel::expose (GnomeScreensaver & gs)
if (it->break_ticks) if (it->break_ticks)
{ {
int break_ticks = ticks - it->break_ticks; int break_ticks = ticks - it->break_ticks;
glTranslatef(break_ticks * it->break_axis[0], glTranslatef(BREAK_RATE * break_ticks * it->break_axis[0],
break_ticks * it->break_axis[1], BREAK_RATE * break_ticks * it->break_axis[1],
break_ticks * it->break_axis[2]); BREAK_RATE * break_ticks * it->break_axis[2]);
} }
glTranslatef(0, diff_offset, 0); glTranslatef(0, diff_offset, 0);
glRotatef(it->trot, 0, 1, 0); glRotatef(it->trot, 0, 1, 0);