我正在尝试使用glTranslate
.
我使用以下代码使用 OpenGL 绘制正方形:
void drawEnemy (RECT rect){
glPushMatrix();
//move enemy left then right
glTranslatef(+right, 0.0, 0.0); //animate right
glTranslatef(-left, 0.0, 0.0); //animate left
glBegin(GL_QUADS);
glColor3f(238, 0.0, 0.0);
glVertex3f(rect.x, rect.y, 0.0);
glColor3f(128, 0.0, 128);
glVertex3f(rect.x, rect.y+rect.h, 0.0);
glColor3f(238, 0.0, 0.0);
glVertex3f(rect.x+rect.w, rect.y+rect.h, 0.0);
glColor3f(128, 0.0, 128);
glVertex3f(rect.x+rect.w, rect.y, 0.0);
glEnd();
glPopMatrix();
}
我正在尝试控制沿 x 轴覆盖的长度,然后使用此代码以相反的方向返回:
void timer(int t)
{
right +=0.5f;
if(right>=platform1.x+platform1.w)
right-=0.5f;
left+=0.5f;
if(left<=platform1.x)
left-=0.5f;
glutPostRedisplay();
glutTimerFunc(25,timer,0);
}
我知道 Opengl 只是一个图形包,不一定用于动画,但出于自学的目的,我真的很想尽可能简单地实现这一点。
目前,该程序使广场永远正确。