• Advertisement
Sign in to follow this  

rotating everywhere?

This topic is 4034 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

hi all,
for(b = 0;b < numberEnemies;b++)
{
	glTranslatef(enemies.position.x,enemies.position.y,0);
	glRotatef(FindAngle(m_character.position,enemies.position) + 90,0,0,1);
	glBegin(GL_QUADS);
	glColor3f(1,1,1);
	glTexCoord2f(0.5,0.59);glVertex2f(-2,1);
	glTexCoord2f(1,0.59);glVertex2f(2,1);
	glTexCoord2f(1,1);glVertex2f(2,-1);
	glTexCoord2f(0.5,1);glVertex2f(-2,-1);
	glEnd();
}
all i'm doing is rotating each enemy to face the character, and yet only the 1st one follows it the way it should. i have everyone drawn in the middle, and i translate and rotate, so it should rotate around its center. however, after the first object, everything rotates around the whole entire screen, and i have no clue as to why...what could be causing this? btw, FindAngle() code:
float FindAngle(CVector point1,CVector point2)
{
	CVector lookAt1 = CVector(point1.x - point2.x,point1.y - point2.y,point1.z - point2.z);
	lookAt1.Normalize();
	float radians3 = atan2(lookAt1.y,lookAt1.x);	
	return (180.0f * (radians3 + 90.0f) / PI);
}
Thanks for the help, --nathan

Share this post


Link to post
Share on other sites
Advertisement
Try:
for(b = 0;b < numberEnemies;b++)
{
glMatrixMode(GL_MODELVIEW); // Just in case...
glPushMatrix();

glTranslatef(enemies.position.x,enemies.position.y,0);
glRotatef(FindAngle(m_character.position,enemies.position) + 90,0,0,1);
glBegin(GL_QUADS);
glColor3f(1,1,1);
glTexCoord2f(0.5,0.59);glVertex2f(-2,1);
glTexCoord2f(1,0.59);glVertex2f(2,1);
glTexCoord2f(1,1);glVertex2f(2,-1);
glTexCoord2f(0.5,1);glVertex2f(-2,-1);
glEnd();
glPopMatrix();
}
As it is now, the transform for each object is being concatenated with the combined transforms of all the previous objects, which is not what you want.

Share this post


Link to post
Share on other sites
thank you very much jyk, it seems i should go to bed earlier so my mind is a little more fresh :P instead of putting the push and pop inside the loop i put it outisde of it...overthinking myself
but putting the push and pop inside the loop worked the problem out, so thanks

--nathan

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement