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 XLATE_RATE 0.02
#define REVOLUTION_TIME 15000
#define DESTROY_DIST 250
#define DESTROY_DIST 200
#define BREAK_RATE 0.03
Tunnel::Tunnel()
{
@ -34,10 +35,10 @@ Tunnel::~Tunnel()
void Tunnel::getRandomBreakAxis(float (*axis)[3])
{
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)[2] = sin(alpha) * sin(beta);
(*axis)[1] = cos(beta);
(*axis)[1] = 0.5 + cos(beta);
}
float Tunnel::getRandomBreakSpinSpeed()
@ -89,9 +90,9 @@ bool Tunnel::expose (GnomeScreensaver & gs)
if (it->break_ticks)
{
int break_ticks = ticks - it->break_ticks;
glTranslatef(break_ticks * it->break_axis[0],
break_ticks * it->break_axis[1],
break_ticks * it->break_axis[2]);
glTranslatef(BREAK_RATE * break_ticks * it->break_axis[0],
BREAK_RATE * break_ticks * it->break_axis[1],
BREAK_RATE * break_ticks * it->break_axis[2]);
}
glTranslatef(0, diff_offset, 0);
glRotatef(it->trot, 0, 1, 0);