Problem mit Kollisonsabfrage



  • Hi,
    ich habe ein Problem mit der Kollisonsabfrage und zwar habe ich 2 Vierecke und ich versuche gerade nur die Y-Achse abzufragen also so:

    void kollision(float *OYPOS,float spielerYpos, bool &kollidiert)
    {
    if(OYPOS[0] == spielerYpos)         //OYPOS[0] ist die Y-Position des objekts
        {
            kollidiert=true;
    
        }
        else
        {
            kollidiert=false;
    
        }
    }
    

    und jetzt ist es so das es nur ganz selten mal stopt wenn sie die gleiche Y-Position haben. ich habe die Zahlen ausgeben lassen und sie sind oft gleich aber es fährt fast jedes mal darüber.

    hier noch die Tastaturabfrage:
    z.B
    bei UP:

    else if(key[SDLK_UP])
          {
    
                          Spieler.showObjekt("phinten.bmp",1);
                          spielerYpos=Spieler.getYPos();
                          spielerXpos=Spieler.getXPos();
    
                          if(kollidiert==false)
                          {
    
                          spielerYpos+=0.005; 
                          cameraY-=0.002; 
                          Spieler.setYPos(spielerYpos);
    
                          }
             }
    

    Die Kollisoinsabfrage ist eine Funktion die rufe ich dann am Ender der main schleife auf und davor speichere ich nochmal die aktuelle Position von dem Spieler:

    spielerYpos=Spieler.getYPos();
    spielerXpos=Spieler.getXPos();
    kollision(OYPOS,spielerYpos, kollidiert);
    

    Auserhalb der main schleife speicher ich schon die Y-Position von dem Objekt in das Array OYPOS[0];

    Ich hoffe ihr könnt mir helfen ich benutze c++ + SDL + OpenGL und den DevC++ als Compailer

    mfg Fabi



  • Hat sich erledigt


Anmelden zum Antworten