を使用して、2Dの正方形を左、右の順にスムーズに動かそうとしてい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は単なるグラフィックパッケージであり、必ずしもアニメーション自体に使用されるわけではないことは承知していますが、自己学習の目的で、これをできるだけ簡単に実現したいと考えています。
現在、プログラムは正方形を永遠に正しく動かします。