void draw_score(long long int score)
{
	long long int tempsc = score;	
     char str[15];
	sprintf(str,"%lld",tempsc);
	glutStrokeString(GLUT_STROKE_ROMAN,"SCORE : ");
	glutStrokeString(GLUT_STROKE_ROMAN,str);
}
void RenderGroupCount(int count, int offset){
	// convert to expected format
	std::string c = std::to_string(count);
	const unsigned char * d = (const unsigned char*)c.c_str();
	glutStrokeString(GLUT_STROKE_ROMAN, d);

}
Exemple #3
0
//Display words on screen
void DisplayInstructions()
{
	if (window.handle == -1)
		return;

	vector<string> * s = &window.instructions;
	glDisable(GL_LIGHTING);
	glDisable(GL_TEXTURE_2D);
	glDisable(GL_DEPTH_TEST);
	glColor3f(0.0f, 0.0f, 0.0f);
	glMatrixMode(GL_PROJECTION);
	glLoadIdentity();
	glOrtho(0, window.size.x, 0, window.size.y, 1, 10);
	glViewport(0, 0, window.size.x, window.size.y);
	glMatrixMode(GL_MODELVIEW);
	glLoadIdentity();
	glTranslated(window.size.x - 450, 19 * s->size(), -5.5);
	glScaled(0.14, 0.14, 1.0);
	glLineWidth(3.0f);
	for (auto i = s->begin(); i < s->end(); ++i)
	{
		glPushMatrix();
		glutStrokeString(GLUT_STROKE_MONO_ROMAN, (const unsigned char *) (*i).c_str());
		glPopMatrix();
		glTranslated(0, -150, 0);
	}
	glLineWidth(1.0f);
}
Exemple #4
0
static void drawTextOnScreen(int x, int y, const char* string, float* color, void* font, float scaleX, float scaleY) {
	glDisable(GL_LIGHTING);
	glEnable(GL_BLEND);
	glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

	glMatrixMode( GL_MODELVIEW );	
	glPushMatrix();
	glLoadIdentity();

		glMatrixMode( GL_PROJECTION );
		glPushMatrix();
		glLoadIdentity();
			glColor4fv(color);

			gluOrtho2D( 0, glutGet(GLUT_WINDOW_WIDTH), 0, glutGet(GLUT_WINDOW_HEIGHT) );
			glTranslatef(x, y, 0);
			//glRasterPos2i( x, y );
			glScalef(scaleX, scaleY, 1);
			glutStrokeString(font, (UCHAR*)string);
			
			//glutBitmapString(font, (UCHAR*)string);
		
		glPopMatrix();
	
	glMatrixMode( GL_MODELVIEW );
	glPopMatrix();
	
	glDisable(GL_BLEND);
	glEnable(GL_LIGHTING);
}
Exemple #5
0
/******************************************************************************
* Function: showPausedStr()
* Authors: Ian Carlson, Christopher Smith
* Description: Displays that the game is paused when paused
* ****************************************************************************/
void showPausedStr()
{
    glColor3f(1,1,1);
    glMatrixMode(GL_MODELVIEW);
    glPushMatrix();
    glTranslatef( 350, 100, 0 );
    // while ( *string ) glutStrokeCharacter( GLUT_STROKE_ROMAN, *string++ );
    glutStrokeString( GLUT_STROKE_ROMAN, (const unsigned char *)"***PAUSED***" );
    glPopMatrix();
}
Exemple #6
0
void XSADrawString(d_XSA3DPoint translate,float rotation,double scale,const unsigned char* string) {
    int length = glutStrokeLength(GLUT_STROKE_MONO_ROMAN, string);
    glPushMatrix();
        glTranslated(translate.x, translate.y, translate.z);
        glScaled(scale, scale, scale);
        glRotatef(-rotation, 0.0, 1.0, 0.0);
        glTranslated(-(length / 2), 0.0, 0.0);
        glutStrokeString(GLUT_STROKE_MONO_ROMAN, string);
    glPopMatrix();
}
Exemple #7
0
void XSADrawStringHUD(d_XSA3DPoint point,float rotation,const unsigned char* buf) {
    int length = glutStrokeLength(GLUT_STROKE_MONO_ROMAN,  buf);
    glColor3f(0.0, 1.0, 0.0); // green
    glPushMatrix();
        glTranslated(point.x, point.y, point.z);
        glRotatef(-rotation, 0.0, 1.0, 0.0);
        glTranslated(0.0, 0.1, -10.0);
        glScaled(0.001, 0.001, 0.001);
        glTranslated(-(length / 2), 0.0, 0.0);
        glutStrokeString(GLUT_STROKE_MONO_ROMAN, buf);
    glPopMatrix();
}
Exemple #8
0
/******************************************************************************
* Function: draw_scores()
* Authors: Ian Carlson, Christopher Smith
* Description: Displays the scores to the screen
* ****************************************************************************/
void draw_scores()
{
    char left_str[10];
    char right_str[10];
    sprintf(left_str,"%d",LEFT_SCORE);
    sprintf(right_str,"%d",RIGHT_SCORE);

    //Displays the Player 1 string to the screen
    glColor3f(0,1,0);
    glMatrixMode(GL_MODELVIEW);
    glPushMatrix();
    glTranslatef(200,1400,0);
    glScalef(0.6,0.6,1);
    glutStrokeString(GLUT_STROKE_ROMAN, (const unsigned char *)"Player 1");
    glPopMatrix();

    //Displays the Player 1 score to the screen
    glPushMatrix();
    glTranslatef(200,1300,0);
    glScalef(0.6,0.6,1);
    glutStrokeString(GLUT_STROKE_ROMAN, (const unsigned char *)left_str);
    glPopMatrix();

    //Displays the Player 2 string to the screen
    glColor3f(0,1,1);
    glPushMatrix();
    glTranslatef(900,1400,0);
    glScalef(0.6,0.6,1);
    glutStrokeString(GLUT_STROKE_ROMAN, (const unsigned char *)"Player 2");
    glPopMatrix();

    //Displays the Player 2 score to the screen
    glPushMatrix();
    glTranslatef(900,1300,0);
    glScalef(0.6,0.6,1);
    glutStrokeString(GLUT_STROKE_ROMAN, (const unsigned char *)right_str);
    glPopMatrix();
}
static void glPrintF (int row, int col, const char *fmt, ...)
{
    if (useFont == 0) return;

    const float scale = 0.09f;

    static char buf[128];
    void *strokeFont = GLUT_STROKE_MONO_ROMAN;
    void *bitmapFont = GLUT_BITMAP_9_BY_15;

    static float charWidth = glutStrokeWidth(strokeFont, 35) * scale;
    static float charHeight = glutStrokeHeight(strokeFont) * scale;

    va_list args;
    va_start(args, fmt);
    vsnprintf_s(buf, 128, fmt, args);
    va_end(args);

    glPushMatrix();
    glLoadIdentity();
    glMatrixMode(GL_PROJECTION);
    glPushMatrix();
    glLoadIdentity();
    glOrtho(0, width, 0, height, -1, 1);

    glDisable(GL_LIGHTING);
    glColor3f(1.0, 1.0, 0.0);
    switch(useFont) {
    case 1:
        //StrokeString, very fast
        glTranslatef(charWidth * col, height - charHeight * row, 0.0);
        glScalef(scale, scale, 1);
        glutStrokeString(strokeFont, (const unsigned char*)buf);
        break;
    case 2:
        //BitmapString, high CPU load
        glRasterPos2i(glutBitmapWidth(bitmapFont, ' ') * col, height - glutBitmapHeight(bitmapFont) * row);
        glutBitmapString (bitmapFont, (const unsigned char*)buf);
        break;
    default:
        //disable
        break;
    }
    glEnable(GL_LIGHTING);
    glPopMatrix();
    glMatrixMode(GL_MODELVIEW);
    glPopMatrix();
}
Exemple #10
0
NODE *
do_StrokeString(int nargs)
{
	NODE *tmp;
	void *font;
	const unsigned char *string;

	tmp = (NODE *) get_scalar_argument(0, FALSE);
	force_string(tmp);
	if ((font = str2font(tmp->stptr)) == NULL) {
		// TODO
	}

	tmp = (NODE *) get_scalar_argument(1, FALSE);
	force_string(tmp);
	string = (const unsigned char *) tmp->stptr;

	glutStrokeString(font, string);
	return make_number((AWKNUM) 0);
}
Exemple #11
0
// Draw text at the bottom of the screen.
void FullscreenUI::DrawFooterText(const std::string &text)
{
    glColor4f(1, 1, 1, 1);
    glPushMatrix();
    glLoadIdentity();
    if (m_aspectRatio > 1)
    {
        glScalef(1 / m_aspectRatio, 1, 1);
    }
    else
    {
        glScalef(1, m_aspectRatio, 1);
    }
    glScalef(0.04f, 0.04f, 1);
    glTranslatef(0, -20, 0);
    glTranslatef(text.length() * -0.75f, -4, 0);
    glScalef(0.015f, 0.015f, 1);
    glutStrokeString(GLUT_STROKE_MONO_ROMAN,
                     (const unsigned char *)text.c_str());
    glPopMatrix();
}
Exemple #12
0
void handle_draw(void) {
    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); 
     
    glLoadIdentity();
    gluLookAt(control_table[0][0],control_table[0][1],control_table[0][2],
              control_table[1][0],control_table[1][1],control_table[1][2],
              control_table[2][0],control_table[2][1],control_table[2][2]);
    glColor3f(control_table[3][0],control_table[3][1],control_table[3][2]);
    glRotatef(control_table[5][0],control_table[4][0],control_table[4][1],control_table[4][2]);
    glutWireTeapot(control_table[5][1]);

    // draw text
    glPushMatrix();
    glLoadIdentity();
    glColor4f(1.0f,0.0,0.0,10.f);
    glTranslatef(-7.3f,-7.2f,-18);
    glScalef(0.005f,0.005f,0.005f);
    glutStrokeString(GLUT_STROKE_ROMAN,(const unsigned char*)display_info.c_str());
    glPopMatrix();

    glutSwapBuffers();
}
void DrawStringS(int x, int y, const char* s)
{
	glMatrixMode(GL_PROJECTION);
	glPushMatrix();
	glTranslatef(float(x), float(y), 0.0f);
	
	// make it match GLUT_BITMAP_8_BY_13
	const float kSize = 8.0f/104.76f;

	glScalef(kSize, kSize, kSize);

#if _APPLE_
	while (*s)
	{
		glutStrokeCharacter(GLUT_STROKE_ROMAN, *s);
		++s;
	}
#else
	glutStrokeString(GLUT_STROKE_MONO_ROMAN, (const unsigned char*)s);	
#endif

	glPopMatrix();
}
Exemple #14
0
/*
 * Writes a given string in the current( global ){font}.
 * The string is drawn at the location corresponding to the modelspace
 * origin, providing a somewhat unified interface for the 2 classes
 * of fonts.
 */
void write_string( const char *s )
{
    glDisable( GL_LIGHTING );
    glColor3d( 1, 1, 1 );

    if( ( GLUT_STROKE_ROMAN == font )||( GLUT_STROKE_MONO_ROMAN == font ) )
    {
        /*
         * Stroked fonts are about 100 model units tall.
         * This scales the font down to something usable in the current
         * context.
         */
        static GLfloat f = 1.0/64;
        glScalef( f, f, f );
        glutStrokeString( font, (const unsigned char*)s );
        glScalef( 1/f, 1/f, 1/f );
    }
    else
    {
        glRasterPos3f( 0, 0, 0 );
        glutBitmapString( font, (const unsigned char*)s );
    }
    glEnable( GL_LIGHTING );
}
Exemple #15
0
//Displays time above the balls
void DisplayTime(mat4 modelview, mat4 projection, float time, vec3 position)
{
	ostringstream convert;
	int integerTime = (int)time;
	convert << integerTime;
	string displayNumber;
	displayNumber = convert.str();

	glDisable(GL_LIGHTING);
	glDisable(GL_TEXTURE_2D);
	glColor3f(0.0f, 0.0f, 0.0f);
	glMatrixMode(GL_PROJECTION);
	glLoadMatrixf(value_ptr(projection));
	glViewport(0, 0, window.size.x, window.size.y);
	glMatrixMode(GL_MODELVIEW);
	//modelview = translate(modelview, vec3(-window.ball_radius / 2.0f, 0.0f, -window.ball_radius / 2.0f));
	glLoadMatrixf(value_ptr(modelview));
	glTranslatef(0.0f/*-0.2f + -0.175f * (3-1)*/, window.ball_radius * 1.5f, 0.0f);
	glRotatef(angleV, 0.0f, 1.0f, 0.0f);
	glScaled(0.01, 0.01, 0.01);
	glPushMatrix();
	glutStrokeString(GLUT_STROKE_ROMAN, (const unsigned char*) displayNumber.c_str());
	glPopMatrix();
}
void draw_time(int time)
{
	int tempt = time;
	tempt/=1000;
	int tmin=tempt/60;
	int tsec=tempt%60;	
     char str1[15],str2[15];
	sprintf(str1,"%d",tmin);
	sprintf(str2,"%d",tsec);
	glutStrokeString(GLUT_STROKE_ROMAN,"Time ");
	glutStrokeString(GLUT_STROKE_ROMAN,str1);
	glutStrokeString(GLUT_STROKE_ROMAN,":");
     if(tsec/10==0)
	{
		glutStrokeString(GLUT_STROKE_ROMAN,"0");	
		glutStrokeString(GLUT_STROKE_ROMAN,str2);
     }
	else
		glutStrokeString(GLUT_STROKE_ROMAN,str2);
	
}
Exemple #17
0
void TeleportWindow::render(int window_w, int window_h)
{
	// Calculate size of 1 pixel
	float ps_w = 2. / window_w; // pixelsize x-direction
	float ps_h = 2. / window_h; // pixelsize y-direction
	float apsr = 1.*window_w / window_h; // aspectatio

	// Whole Window
	glColor3f(0.0, 0.0, 0.1);
	glBegin(GL_QUADS);
	{
		glVertex3f(-0.9, -0.9, -1.0);
		glVertex3f(-0.9,  0.9, -1.0);
		glVertex3f( 0.9,  0.9, -1.0);
		glVertex3f( 0.9, -0.9, -1.0);
	}
	glEnd();

	// Preview Widget
	glColor3f (0.1, 0.1, 0.1);
	glBegin(GL_QUADS);
	{
		glVertex3f(-0.45/apsr, -0.45, -1.0);
		glVertex3f(-0.45/apsr,  0.45, -1.0);
		glVertex3f( 0.45/apsr,  0.45, -1.0);
		glVertex3f( 0.45/apsr, -0.45, -1.0);
	}
	glEnd();

	glColor3f(1.0, 1.0, 1.0);
	glRasterPos2f(-0.9 + 4 * ps_w, -0.9 + 4 * ps_h);
	glutBitmapString(GLUT_BITMAP_HELVETICA_12,
		(unsigned char *)"Use arrow keys up and down to select the desired action.\
		Use arrow keys right and left to select your destination or type its name.");

	glColor3f(1, 1, 1);
	unsigned char *actionstring = (unsigned char *)
		m_actions.at(m_action_selected).getDescription().c_str();
	float actionstring_len = glutBitmapLength(GLUT_BITMAP_HELVETICA_18, actionstring);

	glRasterPos2f(0 - actionstring_len / 2 * ps_w, 1 - 70 * ps_h);
	glutBitmapString(GLUT_BITMAP_HELVETICA_18, actionstring);

	float offset_l = m_destination.length() * 4.5;
	glRasterPos2f(0 - offset_l * ps_w, 1 - 93 * ps_h);
	glutBitmapString(GLUT_BITMAP_HELVETICA_18, (unsigned char *)m_destination.c_str());

	glColor3f(1, 1, 1);
	// Render preview of TeleportTarget
	glPushAttrib(GL_ENABLE_BIT);
	{
		glEnable (GL_DEPTH);
		glEnable (GL_DEPTH_TEST);
		glEnable (GL_BLEND);

		glScalef(1.0f / apsr, 1.0f, 1.0f);

		glTranslatef(0.0f, 0.0f, -1.0f);
		if (m_target)
			m_target->renderPreview(m_preview_time, 0.4f);
		else
		{
			// Draw Wire Sphere
			glLineWidth(2.0);
			glPushMatrix();
			{
				glRotatef(m_preview_time * TELEPORT_PREVIEW_ROTSPEED, 0, 1, 0);
				glRotatef(90, 1, 0, 0);
				glutWireSphere(0.4, 20, 20);
			}
			glPopMatrix();

			// Draw red question mark
			glPushMatrix();
			{
				glColor3f(1.0f, 0.0f, 0.0f);
				glLineWidth(5.0);
				float textsize = 0.5;
				float font_height = textsize / glutStrokeHeight(GLUT_STROKE_MONO_ROMAN);
				float font_width  = textsize / glutStrokeLength(GLUT_STROKE_MONO_ROMAN,
					(unsigned char *)"?");

				glTranslatef(0.0f, 0.0f, 1.0f);
				glRotatef(m_preview_time * TELEPORT_PREVIEW_ROTSPEED, 0, 1, 0);
				glTranslatef(-textsize / 2, -textsize / 4, 0.4f);
				glScalef(font_width, font_height, font_width);
				glutStrokeString(GLUT_STROKE_MONO_ROMAN, (unsigned char *)"?");
			}
		}
	}
	glPopAttrib();
}
void DrawObject(float x,float y,float z,float  rotation,float width,float height,unsigned int decal_type,char * text)
{
  glPushMatrix();
  //glPolygonMode(GL_FRONT_AND_BACK,GL_FILL);
  if (frame.try_for_best_render_quality)
    {
     glEnable(GL_NORMALIZE);
     glEnable(GL_LINE_SMOOTH);
    }

  glTranslated(x,y,z);
  if ( rotation!=0 )    { glRotated(rotation,0.0,0.0,1.0); }


if ( decal_type != 0 )
{ //Decal type zero may only have text :P
  glEnable ( GL_TEXTURE_2D );
 /* DRAW FRAME >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
 glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE);
  if ( decal_type == 1 )  glBindTexture(GL_TEXTURE_2D, heart->gpu.gl_rgb_texture ); else
  if ( decal_type == 2 )  glBindTexture(GL_TEXTURE_2D, star->gpu.gl_rgb_texture ); else
  if ( decal_type == 3 )  glBindTexture(GL_TEXTURE_2D, play_img->gpu.gl_rgb_texture ); else
  if ( decal_type == 4 )  glBindTexture(GL_TEXTURE_2D, pause_img->gpu.gl_rgb_texture ); else
  if ( decal_type == 5 )  glBindTexture(GL_TEXTURE_2D, label->gpu.gl_rgb_texture ); else
                          glBindTexture(GL_TEXTURE_2D, heart->gpu.gl_rgb_texture ); /* DEFAULT */
   glBegin(GL_QUADS);
    glColor3f(1.0,1.0,1.0);
     float size_x=width,size_y=height;
     float xmin=(-1)*size_x/2,xmax=size_x/2,ymin=(-1)*size_y/2,ymax=size_y/2;
    glTexCoord2f(1.0f, 0.0f); glVertex3f(0+xmin,0+ymin,0/*-4.1*/);	// Bottom Left Of The Texture and Quad
    glTexCoord2f(0.0f, 0.0f); glVertex3f(0+xmax,0+ymin,0/*-4.1*/);	// Bottom Right Of The Texture and Quad
    glTexCoord2f(0.0f, 1.0f); glVertex3f(0+xmax,0+ymax,0/*-4.1*/);	// Top Right Of The Texture and Quad
    glTexCoord2f(1.0f, 1.0f); glVertex3f(0+xmin,0+ymax,0/*-4.1*/);
   glEnd();
  glDisable ( GL_TEXTURE_2D );
  glDisable(GL_BLEND);
}


  if (text!=0)
    {
      if (frame.lighting_enabled) { glDisable( GL_LIGHTING ); }

      glColor3f(1.0,1.0,1.0);
      glRasterPos3f(width/2,0,0.1);
      //glutBitmapString(GLUT_BITMAP_TIMES_ROMAN_24,(const unsigned char*)text);
        glPushMatrix();
         glRotated(180,0.0,0.0,1.0);
         glTranslated(-10,0,0);
         glLineWidth(3.0);
         static GLfloat f = 1.0/110;
         glScalef( f, f, f );
         glutStrokeString(GLUT_STROKE_ROMAN,(const unsigned char*)text); //GLUT_STROKE_ROMAN GLUT_STROKE_MONO_ROMAN
         glScalef( 1/f, 1/f, 1/f );
         glLineWidth(1.0);
         glTranslated(0,0,0);
         glRotated(-180,0.0,0.0,1.0);
        glPopMatrix();

      if (frame.lighting_enabled) { glEnable( GL_LIGHTING ); }
    }



  if ( rotation!=0 )    { glRotated(-rotation,0.0,0.0,1.0); }
  glTranslated(-x,-y,-z);
  if (frame.try_for_best_render_quality)
    {
     glDisable(GL_LINE_SMOOTH);
     glDisable(GL_NORMALIZE);
    }
  glPopMatrix();
}
Exemple #19
0
/******************************************************************************
* Function: showStartScreen()
* Authors: Ian Carlson, Christopher Smith
* Description: Displays the start screen for controls of game
* ****************************************************************************/
void showStartScreen()
{
    //Displays player 1 Controls
    glColor3f(1,1,1);
    glMatrixMode(GL_MODELVIEW);
    glPushMatrix();
    glTranslatef( 100, 1150, 0 );
    // while ( *string ) glutStrokeCharacter( GLUT_STROKE_ROMAN, *string++ );
    glScalef(0.3,0.3,1);
    glutStrokeString( GLUT_STROKE_ROMAN, (const unsigned char *)"PLAYER 1 CONTROLS:" );
    glPopMatrix();

    glPushMatrix();
    glTranslatef( 150, 950, 0 );
    // while ( *string ) glutStrokeCharacter( GLUT_STROKE_ROMAN, *string++ );
    glScalef(0.3,0.3,1);
    glutStrokeString( GLUT_STROKE_ROMAN, (const unsigned char *)"W,w: Move Up" );
    glPopMatrix();
    glPushMatrix();
    glTranslatef( 150, 800, 0 );
    // while ( *string ) glutStrokeCharacter( GLUT_STROKE_ROMAN, *string++ );
    glScalef(0.3,0.3,1);
    glutStrokeString( GLUT_STROKE_ROMAN, (const unsigned char *)"D,d: Move Down" );
    glPopMatrix();
    glPushMatrix();
    glTranslatef( 150, 650, 0 );
    // while ( *string ) glutStrokeCharacter( GLUT_STROKE_ROMAN, *string++ );
    glScalef(0.3,0.3,1);
    glutStrokeString( GLUT_STROKE_ROMAN, (const unsigned char *)"A,a: Move Left" );
    glPopMatrix();
    glPushMatrix();
    glTranslatef( 150, 500, 0 );
    // while ( *string ) glutStrokeCharacter( GLUT_STROKE_ROMAN, *string++ );
    glScalef(0.3,0.3,1);
    glutStrokeString( GLUT_STROKE_ROMAN, (const unsigned char *)"D,d: Move Right" );
    glPopMatrix();
    glPushMatrix();
    glTranslatef( 150, 350, 0 );


    //Displays the universal controls for speeds and pause
    // while ( *string ) glutStrokeCharacter( GLUT_STROKE_ROMAN, *string++ );
    glScalef(0.3,0.3,1);
    glutStrokeString( GLUT_STROKE_ROMAN, (const unsigned char *)"Q, q & E, e: Rotate Left/Right" );
    glPopMatrix();
    glPushMatrix();
    glTranslatef( 500, 250, 0 );
    // while ( *string ) glutStrokeCharacter( GLUT_STROKE_ROMAN, *string++ );
    glScalef(0.3,0.3,1);
    glutStrokeString( GLUT_STROKE_ROMAN, (const unsigned char *)"Spacebar, p, P: Pause Start Game" );
    glPopMatrix();
    glPushMatrix();
    glTranslatef( 500, 150, 0 );
    // while ( *string ) glutStrokeCharacter( GLUT_STROKE_ROMAN, *string++ );
    glScalef(0.3,0.3,1);
    glutStrokeString( GLUT_STROKE_ROMAN, (const unsigned char *)"+, -: Speed Up/Slow Ball" );
    glPopMatrix();
    glPushMatrix();
    glTranslatef( 500, 50, 0 );
    // while ( *string ) glutStrokeCharacter( GLUT_STROKE_ROMAN, *string++ );
    glScalef(0.3,0.3,1);
    glutStrokeString( GLUT_STROKE_ROMAN, (const unsigned char *)"*, /: Speed Up/Slow Paddles" );
    glPopMatrix();


    //Displays the Controls for Player 2
    glMatrixMode(GL_MODELVIEW);
    glPushMatrix();
    glTranslatef( 900, 1150, 0 );
    // while ( *string ) glutStrokeCharacter( GLUT_STROKE_ROMAN, *string++ );
    glScalef(0.3,0.3,1);
    glutStrokeString( GLUT_STROKE_ROMAN, (const unsigned char *)"PLAYER 2 CONTROLS:" );
    glPopMatrix();

    glPushMatrix();
    glTranslatef( 940, 950, 0 );
    // while ( *string ) glutStrokeCharacter( GLUT_STROKE_ROMAN, *string++ );
    glScalef(0.3,0.3,1);
    glutStrokeString( GLUT_STROKE_ROMAN, (const unsigned char *)"Up Arrow, 8: Move Up" );
    glPopMatrix();
    glPushMatrix();
    glTranslatef( 940, 800, 0 );
    // while ( *string ) glutStrokeCharacter( GLUT_STROKE_ROMAN, *string++ );
    glScalef(0.3,0.3,1);
    glutStrokeString( GLUT_STROKE_ROMAN, (const unsigned char *)"Down Arrow, 5, 2: Move Down" );
    glPopMatrix();
    glPushMatrix();
    glTranslatef( 940, 650, 0 );
    // while ( *string ) glutStrokeCharacter( GLUT_STROKE_ROMAN, *string++ );
    glScalef(0.3,0.3,1);
    glutStrokeString( GLUT_STROKE_ROMAN, (const unsigned char *)"Left Arrow, 4: Move Left" );
    glPopMatrix();
    glPushMatrix();
    glTranslatef( 940, 500, 0 );
    // while ( *string ) glutStrokeCharacter( GLUT_STROKE_ROMAN, *string++ );
    glScalef(0.3,0.3,1);
    glutStrokeString( GLUT_STROKE_ROMAN, (const unsigned char *)"Right Arrow, 6: Move Right" );
    glPopMatrix();
    glPushMatrix();
    glTranslatef( 940, 350, 0 );
    // while ( *string ) glutStrokeCharacter( GLUT_STROKE_ROMAN, *string++ );
    glScalef(0.3,0.3,1);
    glutStrokeString( GLUT_STROKE_ROMAN, (const unsigned char *)"7, Home & 9, PgUp: Rotate Left/Right" );
    glPopMatrix();
    glPushMatrix();




}