OpenGL C Fehler
-
Servus Leute,
ich versuche gerade einen Punkt in OpenGL (C) mit WASD zu bewegen,
doch leider tut sich nix, wäre nett wenn sich mal einer denn Quellcode anschauen könnte und mir sagen könnte wo der Fehler ist,
Danke schonmal im Vorraus,
MfG Justus#include <GL/glut.h> #include <stdlib.h> #include <time.h> float a = 0.0f; //KOORDINATEN FÜR PUNKT IN SZENE float b = 0.0f; //KOORDINATEN FÜR PUNKT IN SZENE void Szene() { //glClearColor(0.0f, 0.0f, 0.0f, 1.0f); //Hintergrund Farbe setzen glClear(GL_COLOR_BUFFER_BIT); //Color Buffer clearen glPointSize(5); //Punkt Größe glBegin(GL_POINTS); //PUNKT zeichnen glColor3f(1.0f, 0.0f, 0.0f); //Farbe vom PUNKT glVertex2f(a, b); //PUNKT Koordianten (XY) glEnd(); //ENDE von Punkt zeichnen glBegin(GL_LINES); glColor3f(1.0, 0.0, 1.0); glVertex2f(1.0f, 1.0f); glVertex2f(-1.0f, -1.0f); glEnd(); glFlush(); //Rendern } void tasten (unsigned char key, int xmouse, int ymouse) { switch (key){ case 'w': b+0.1; break; case 'a': a-0.1; break; case 's': b-0.1; break; case 'd': a+0.1; break; case 'r': a = 0.0f; b = 0.0f; break; default: break; } glutPostRedisplay(); } /* void Szene2(){ glClearColor(0.0f, 0.0f, 0.0f, 1.0f); //Hintergrund Farbe setzen glClear(GL_COLOR_BUFFER_BIT); //Color Buffer clearen glBegin(GL_LINES); glColor3f(0.0, 0.0, 1.0); glVertex2f(1.0f, 1.0f); glVertex2f(1.0f, -1.0f); glEnd(); glBegin(GL_LINES); glColor3f(0.0, 0.0, 1.0); glVertex2f(0.9f, 0.9f); glVertex2f(0.9f, -0.9f); glEnd(); glBegin(GL_LINES); glColor3f(0.0, 0.0, 1.0); glVertex2f(0.8f, 0.8f); glVertex2f(0.8f, -0.8f); glEnd(); glFlush(); } */ int main(int argc, char **argv) { srand(time(NULL)); glutInit(&argc, argv); //Initialisierung von GLUT glutCreateWindow("JUSTUS TEST"); //WINDOW Name glutInitWindowSize(300, 300); //Größe des Fensters glutInitWindowPosition(50, 50); //Position des Fensters glutReshapeWindow(500, 500); //Größe des Fensters auf Wunsch Wert umändern glutDisplayFunc(Szene); //Welche Szene gerendert werden soll glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA); //RGB = Default Farben DOUBLE = Für schönere Animationen DEPTH = Depth Buffer glutKeyboardFunc(tasten); glutMainLoop(); //Glut in Endlosschleife setzen return 1; }
-
Schalte mal die Warnungen bei deinem Compiler ein (bzw. beachte diese).
Die Anweisungb+0.1;
ist ohne Nutzen. Das gehört aber zu den Grundlagen.
Richtig ist:b += 0.1;
...
-
Vielen vielen Dank,
bin leider noch eine andere Sprache gewöhnt deswegen mache ich oft blöde Syntaxfehler!