Skip to main content
GameDev.net gamedev.net
🔒 Locked

game scoring

Started by phil67rpg Mar 6, 2013 at 2:28 AM 2 replies 1.9k views
Original Post
phil67rpg
phil67rpg
I am almost done with my breakout game. I have a small problem with the scoring system. I have been able to print to the screen the numbers used in scoring. Basically I can print out 100 and then overwrite it with 200 points. What want to do is print the number then print black numbers to overwrite the text and then print the next highest score. here is my code.

void drawBitmapText(char *string,float x,float y,float z)
{
	char *c;
	glRasterPos3f(x, y,z);
	for (c=string; *c != '\0'; c++)
	{
		glutBitmapCharacter(GLUT_BITMAP_TIMES_ROMAN_24, *c);
	}
}

void brick_collision()
{
	GLint n=0;
	if(bricks[2][4]==true)
	{
		n+=100;
		str=itoa(n,buffer,10);
		drawBitmapText(str,4.0f,2.0f,0.0f);
	}
	if(bricks[2][3]==true)
	{
		n+=100;
		str=itoa(n,buffer,10);
		drawBitmapText(str,4.0f,2.0f,0.0f);
	}
	if(bricks[2][2]==true)
	{
		n+=100;
		str=itoa(n,buffer,10);
		drawBitmapText(str,4.0f,2.0f,0.0f);
	}
	if(bricks[2][1]==true)
	{
		n+=100;
		str=itoa(n,buffer,10);
		drawBitmapText(str,4.0f,2.0f,0.0f);
	}
	if(bricks[2][0]==true)
	{
		n+=100;
		str=itoa(n,buffer,10);
		drawBitmapText(str,4.0f,2.0f,0.0f);
	}
 
NightCreature83
NightCreature83

Because the first thing you do before you start drawing is clear your back buffer so that non of the old frame is there any more, you need to issue two draw calls for your effect one with the old score and one with your new score.

phil67rpg
phil67rpg

how do you clear the back buffer?

phil67rpg
phil67rpg

well I have almost solved my problem. here is my code all I need is some tweaking


void
 
 
drawBitmapText(char *string,float x,float y,float z) 
{ 
char
 
 
*c;
glPushAttrib(
 
GL_CURRENT_BIT);
glColor3f(1.0f,1.0f,1.0f);
glRasterPos3f(
 
x, y,z);
for
 
 
(c=string; *c != '\0'; c++) 
{
glutBitmapCharacter(
 
GLUT_BITMAP_TIMES_ROMAN_24, *c);
}
glPopAttrib();
}
void
 
 
drawBitmapText_clear(char *string,float x,float y,float z) 
{ 
char
 
 
*c;
glPushAttrib(
 
GL_CURRENT_BIT);
glColor3f(0.0f,0.0f,0.0f);
glRasterPos3f(
 
x, y,z);
for
 
 
(c=string; *c != '\0'; c++) 
{
glutBitmapCharacter(
 
GLUT_BITMAP_TIMES_ROMAN_24, *c);
}
glPopAttrib();
}
void
 
 
brick_collision()
{
 
 
GLint n=0;
 
 
if(bricks[2][4]==true)
{
n+=100;
str=itoa(n,buffer,10);
drawBitmapText_clear(str,0.0f,2.0f,0.0f); 
drawBitmapText(str,0.0f,2.0f,0.0f);
}
 
 
if(bricks[2][3]==true)
{
n+=100;
str=itoa(n,buffer,10);
drawBitmapText_clear(str,0.0f,2.0f,0.0f); 
drawBitmapText(str,0.0f,2.0f,0.0f); 
}
 
 
if(bricks[2][2]==true)
{
n+=100;
str=itoa(n,buffer,10);
drawBitmapText_clear(str,0.0f,2.0f,0.0f); 
drawBitmapText(str,0.0f,2.0f,0.0f); 
}
 
 
if(bricks[2][1]==true)
{
n+=100;
str=itoa(n,buffer,10);
drawBitmapText_clear(str,0.0f,2.0f,0.0f); 
drawBitmapText(str,0.0f,2.0f,0.0f); 
}
 
 
if(bricks[2][0]==true)
{
n+=100;
str=itoa(n,buffer,10);
drawBitmapText_clear(str,0.0f,2.0f,0.0f); 
drawBitmapText(str,0.0f,2.0f,0.0f); 
}
 
 

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.