openGL 2D verschieben und Objekt um 1 Einheit

Habe ich einige Fragen dazu, wie Sie ein Objekt verschieben, indem Sie eine Taste drücken. Alles was ich tun möchte, ist zum drücken der up-Taste bei meiner Tastatur und machen das Objekt zu bewegen eine Einheit.

void display(){

    //Clear Window
    glClear(GL_COLOR_BUFFER_BIT);

    glPushMatrix();
    glBegin(GL_POLYGON);
    glColor3f(1.0, 0.0, 0.0);
    glVertex2f(-0.1, -0.2);
    glVertex2f(-0.1, 0.2);
    glVertex2f(0.1, 0.2);
    glVertex2f(0.1, -0.2);
    glEnd();
    glPopMatrix();
    glFlush();
}


void keyboardListener(int key)
{  
    if( key == GLUT_KEY_UP) 
    {
        glTranslatef(1.0, 0.0, 0.0);
        glutPostRedisplay(); 
    }
}

Was fehlt oder was Konzept, ich bin nicht zu verstehen?

  • Erhalten Sie die key-up-event ? Was passiert ?
  • 1.: Sie müssen uns nur sagen, was NICHT funktioniert, in Ihre Lösung. 2: Versuchen Sie, formulieren Sie Ihre Frage in eine Allgemeine Frage, nicht eine "debug-mein code".
  • die übersetzung macht das Objekt gehen 1 Einheit in der x-Achse ist es nicht? also alle Werte "x", das polygon wird nach oben eine Einheit anstelle von -0.1 man in das Bild wäre von 0,0 und 0,1 werden würde, 0.2. Ich finde es auch komisch aus, wenn ich drücken Sie die rechts-Taste, Quadrat bleiben wird, zeigen 90 Grad. Die Funktion wird mir erlauben, in diesem Fall drehen Sie um 90 Grad nach rechts verlassen, es pointind in Richtung 0 Grad? All dies ohne änderung der escene, weil ich denke, rotatef ändert sich die Ansicht, nicht wirklich die physische position des Objekts
InformationsquelleAutor Vico Pelaez | 2012-10-31
Schreibe einen Kommentar