Как мне оживить 2d ноги в OpenGL, чтобы качаться взад и вперед?C ++ - PullRequest
0 голосов
/ 26 сентября 2018

У меня есть задание на программирование, когда одна часть качает ноги вперед и назад, чтобы создать движение при ходьбе.Для меня это то, что должно работать логически.Должно быть 20 шагов, каждый цикл проверяет, является ли он четным или нечетным.Если он четный, он меняет углы ходьбы, если он странный, это обе ноги на земле.Я не уверен, что я помещаю код в правильное место, в настоящее время он у меня в методе drawicon.Любые мысли о том, нужно ли это поместить куда-то еще, или моя логика выключена, или что здесь происходит?(Там 500 строк кода, но если вам нужно увидеть все, просто дайте мне знать)

for (i = 0; i <= 20; i++) {
            if (i % 2) {
                glBegin(GL_LINE_STRIP);
                //Draw polymans upper body
                glVertex2f(pxp[0], pyp[0]);// top line left
                glVertex2f(pxp[1], pyp[1]);//top line right
                glVertex2f(pxp[2], pyp[2]); //far right point
                glVertex2f(pxp[5], pyp[5]); // far left point
                glVertex2f(pxp[6], pyp[6]);//far top left diag line
                glEnd();

                glBegin(GL_LINE_STRIP);
                //Draw Polymans lower body
                glVertex2f(pxp[5], pyp[5]); //mouth part
                glVertex2f(pxp[2], pyp[2]);//far right point
                glVertex2f(pxp[3], pyp[3]);//bottom right line
                glVertex2f(pxp[4], pyp[4]);// bottom line left
                glVertex2f(pxp[5], pyp[5]);// mouth part
                glEnd();
                //now draw the feet and eyes

                //make the eyes
                glPointSize(5.0f);
                glBegin(GL_POINTS);
                glVertex2f(pxp[8], pyp[8]);
                glEnd();

                //foot one
                glBegin(GL_LINE_STRIP);

                glVertex2f(plxp[3], plyp[3]);
                glVertex2f(plxp[4], plyp[4]);
                glVertex2f(plxp[4], plyp[4]);
                glVertex2f(plxp[5], plyp[5]);

                glEnd();



                //foot two
                glBegin(GL_LINE_STRIP);

                glVertex2f(pxp[12], pyp[12]);
                glVertex2f(pxp[13], pyp[13]);
                glVertex2f(pxp[13], pyp[13]);
                glVertex2f(pxp[14], pyp[14]);

                glEnd();
            }
            else {
                glBegin(GL_LINE_STRIP);
                //Draw polymans upper body
                glVertex2f(pxp[0], pyp[0]);// top line left
                glVertex2f(pxp[1], pyp[1]);//top line right
                glVertex2f(pxp[2], pyp[2]); //far right point
                glVertex2f(pxp[5], pyp[5]); // far left point
                glVertex2f(pxp[6], pyp[6]);//far top left diag line
                glEnd();

                glBegin(GL_LINE_STRIP);
                //Draw Polymans lower body
                glVertex2f(pxp[5], pyp[5]); //mouth part
                glVertex2f(pxp[2], pyp[2]);//far right point
                glVertex2f(pxp[3], pyp[3]);//bottom right line
                glVertex2f(pxp[4], pyp[4]);// bottom line left
                glVertex2f(pxp[5], pyp[5]);// mouth part
                glEnd();
                //now draw the feet and eyes

                //make the eyes
                glPointSize(5.0f);
                glBegin(GL_POINTS);
                glVertex2f(pxp[8], pyp[8]);
                glEnd();


                //foot one
                glBegin(GL_LINE_STRIP);

                glVertex2f(plxp[0], plyp[0]);
                glVertex2f(plxp[1], plyp[1]);
                glVertex2f(plxp[2], plyp[2]);

                glEnd();



                //foot two

                glBegin(GL_LINE_STRIP);

                glVertex2f(pxp[9], pyp[9]);
                glVertex2f(pxp[10], pyp[10]);
                glVertex2f(pxp[11], pyp[11]);

                glEnd();

            }
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...