Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[Opengl, Glut] Problem z funkcją wyświetlania

Ostatnio zmodyfikowano 2012-02-07 00:08
Autor Wiadomość
masterKoper
Temat założony przez niniejszego użytkownika
[Opengl, Glut] Problem z funkcją wyświetlania
» 2012-02-06 22:45:38
Witam,
może najpierw się przedstawię - jestem masterKoper i programuje sobie w c++ w Code::Blocks od kilku miesięcy. To mój pierwszy post więc jak źle go napisałem to przepraszam - mój błąd.

Pisze na forum bo mam problem z moją aplikacją, właściwie grą w Glucie (Opengl). Mianowicie mam problem z glutDisplayFunc - u mnie akurat jest to drawScene. Mam taki kod:
C/C++
static void drawScene( void )
{
    glClearColor( 0.0f,( float ) 180 / 255, 1.0f, 1.0f );
    glClear( GL_COLOR_BUFFER_BIT );
   
    if( gamestate == 1 )
    {
        int col = checkCol( Player1, Map1 );
       
        if( w )
        {
            Player1->vely = pspeed;
        }
        else if( s )
        {
            Player1->vely =- pspeed;
        }
        else
        {
            if( col == 0 )
            {
                Player1->vely =- 2.0;
            }
            else if( col == 1 || col ==- 1 )
            {
                Player1->vely = 0.0;
            }
        }
        if( a )
        {
            Player1->velx =- pspeed;
        }
        else if( d )
        {
            Player1->velx = pspeed;
        }
        else
             Player1->velx = 0.0;
       
        if( c )
        {
            printf( "test" );
        }
       
        Player1->posx += Player1->velx;
        Player1->posy += Player1->vely;
       
        glPushMatrix();
        camx =( Player1->posx + 16.0 ); camy =( Player1->posy + 32.0 );
       
        glTranslatef(( ww / 2.0 ) - camx,( wh / 2.0 ) - camy, NULL );
       
        Map1->draw();
        Player1->pdraw();
        glPopMatrix();
    }
   
    glutSwapBuffers();
}
Wszystko dobrze szybko się kompiluje niby ok.
Ale gdy dodam chociaż jedną linijkę  kodu więcej do drawScene to gdy włączam tą grę już skompilowaną to się od razu wyłącza i zwraca -1073741819 (0xC0000005) - czytałem że chodzi o Access violation czyli coś ze złym odwołaniem do pamięci czy coś.

Nie wiem do końca czym to jest spowodowanie - tylko przypuszczam -, bo nawet jak dodam jeszcze jedno printf("test"); to już mi się crashuje przy starcie. Szukałem o tym w google ale nic nie znalazłem co by mi pomogło.

Myślę że może jest jakieś ograniczenie w glutDisplayFunc, dotyczące długości funkcji. A jak nie to to może te warunki z wykrywaniem kolizji powinny być gdzieś indziej ale przecież to chyba nie powinno sprawiać problemu ;(

Tak samo miałem też z glutKeyboardFunc i dlatego te warunki przekopiowałem do displayfunc.

W każdym razie proszę o pomoc bo już nie mogę z tym shitem. Niech się ktoś mądry wypowie. ;d
P-50222
DejaVu
» 2012-02-06 23:21:57
Umieściłeś pliki *.dll w katalogu w którym znajduje się Twoja skompilowana aplikacja?
P-50227
masterKoper
Temat założony przez niniejszego użytkownika
» 2012-02-07 00:08:31
Nie ale w folderze Windowsowym są w system32 i w system - czy to nie wystarczy? Ale sproboje skopiować
Oprócz tego przeinstaluje gluta bo wziałem jakiegoś nieoficjalnego i to może dlatego nie dziala. Ale nie mogłem znaleść dobrego do Code::blocks
P-50234
« 1 »
  Strona 1 z 1