Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Korowai

unregistriert

1

05.02.2015, 14:05

Starttaste mit GLUT

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?

Tobiking

1x Rätselkönig

  • Private Nachricht senden

2

05.02.2015, 14:18

Vergleiche macht man mit "==". Das "=" ist eine Zuweisung. In deinem Fall kann man es sogar weglassen; "if(x)" und "if(!x)"

Korowai

unregistriert

3

05.02.2015, 14:24

Asche auf mein Haupt...

Werbeanzeige