Fenster schließt ganzen Programm.
-
Hallo,
ich hoffe ich bin hier richtig mit meiner Frage. Also ich kenne mich nicht so gut aus mit c von daher verzeiht mir schon mal vorher...
Also ich hab mit einem Kumpel ein kleines Spiel geschrieben. Und in dem Grundfenster haben wir mit GL-Quads einen Button gemacht. Wenn man diesen Klickt öffnet die anleitung in einem extra Fenster, was auch so gewollt ist. Aber wenn wir jetzt jedoch auf das kreuz von dem extra fenster klicken damit es schließt, beendet sich direkt das ganze programm, aber das ist etwas doof.
Wir wissen nicht mehr weiter vllt kann einer von euch ja helfen.
Das extra fenster wird mit Folgender Funktion erstellt:
void Anleitungw() { glutCreateWindow("Anleitung"); glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE); glutInitWindowSize(500,500); glutInitWindowPosition(WINDOW_STARTORT_ANX, WINDOW_STARTORT_ANY); glutDisplayFunc(Anleitung); glMatrixMode(GL_PROJECTION); gluOrtho2D(0,X[1],Y[1],0); glClearColor(0.8,0.8,0.8,1.0); //Hintergrundfarbe setzen glClear(GL_COLOR_BUFFER_BIT); //Einschalten glEnd(); glFlush(); }
Es wäre echt cool, wenn Ihr Helfen könntet.
Danke schon einmal im Voraus.lg Pixel
p.s. und bitte nicht in zu starker fach sprache antworten
danke...
-
Kann mir echt keiner Helfen?
Wäre echt hilfreich und ist auch recht dringend...Sorry fürs nerven...
Dank euch.
lg Jonas
-
Der Code oben beendet das Programm jedenfalls nicht. Abgesehn davon, was macht das glEnd() da so einsam?
Was macht denn die Anleitung() ?
-
In der Anleitung() sind nur sprintf...
void Anleitung() { printf("\nAnleitung laeuft"); glColor3f(BLACK); glRasterPos2f(10,25); //set the current position for the text sprintf(message,"Anleitung:"); for (int i = 0; i < strlen(message); i++) glutBitmapCharacter(GLUT_BITMAP_HELVETICA_18, message[i] ); //display a character glColor3f(BLACK); glRasterPos2f(10,60); //set the current position for the text sprintf(message,"Diese Schiffe gibt es:"); for (int i = 0; i < strlen(message); i++) glutBitmapCharacter(GLUT_BITMAP_HELVETICA_18, message[i] ); //display a character glColor3f(BLACK); glRasterPos2f(10,85); //set the current position for the text sprintf(message,"2x Schnellboot (Zwei Felder)"); for (int i = 0; i < strlen(message); i++) glutBitmapCharacter(GLUT_BITMAP_HELVETICA_18, message[i] ); //display a character
so fängt das an und geht quasi so immer weiter...
und wird hier mit beendet...
glFlush(); glutPostRedisplay(); }
ist da vielleicht ein fehler drin? liegt es daran, das es ein "hauptfenster" ist... also es ist bestimmt gleichrangig mit dem Spielfeld fenster, jedoch sollte dies nur so ein extra fenster sein welches man wieder beenden kann (bzw. dies sollte klappen)...
Danke schon einmal.
Bitte um schnelle antwortlg Jonas