HI, ich habe ein Problem mit dem EInrichten der Abfrage einer Starttaste:
Folgende Teile sollten dies gewährleisten:
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
int main(int argc, char **argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE);
glutInitWindowSize(1600, 900);
glutInitWindowPosition(0, 0);
glutCreateWindow("OPEN TRON");
if (startvar = false)
{
glutDisplayFunc(displaystart);
}
else
{
glutDisplayFunc(display);
}
glutReshapeFunc(reshape);
glutKeyboardFunc(keyPressed);
glutKeyboardUpFunc(keyUp);
glutSpecialFunc(keySpecial);
glutSpecialUpFunc(keySpecialUp);
glutTimerFunc(25, update, 0);
glutMainLoop();
}
|
Soll zu displaystart schalten, startvar ist am Programmstart als boole auf false deklariert.
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
void displaystart(void)
{
keyOperations();
glClearColor(0.f, 0.f, 0.f, 1.f);
glClear(GL_COLOR_BUFFER_BIT);
glTranslatef(0.0f, 0.0f, -5.0f);
renderBitmapString(0, 0, (void *)font, "Taste zum Starten");
renderBitmapString(-5.1, 2.5, (void *)font, "Open Tron");
//Startabfrage();
Rahmen();
setOrthographicProjection();
//glPushMatrix();
//glLoadIdentity();
//glPopMatrix();
//resetPerspectiveProjection();
//glutSwapBuffers();
while (true)
{
if (startvar = false)
continue;
if (startvar = true)
break;
}
}
|
Und noch der Teil, der eine Starttaste abfragt:
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
{
if (startvar = false)
{
if (keyStates['a'])
{
startvar = true;
}
else
{
startvar = true;
}
}
else if (startvar = true)
//......
|
Kann es sein, dass der Befehl else bei der Keyabfrage nicht das ERgebnis bringt, dass der User irgendeine Taste gedrückt hat, sondern das PRogramm einfach weiter läuft, weil else in diesem Fall ja auf jeden Fall eintritt?