Pixelgenaue 2D Kollision C++ OpenGL



  • Hi alle zusammen :p ,

    ich hab mal wieder eine Frage:

    Ich schreib grad nen Lode Runner Clone (kultiges C64 game), der Editor, die Levels das einlesen der Levels etc. funktioniert

    hervorragend.

    Eine Bounding Box Kollision funktioniert ebenfalls:

    bool BoundinBoxCollision()
    {
       if (   100 + Objekt1.Xpos > 200 - textures->width 
          && 100 - Objekt1.Ypos > 200 - textures->width
          && 164 + Objekt1.Xpos > 264 - textures->width 
          && 100 - Objekt1.Ypos > 200 - textures->width
          && 164 + Objekt1.Xpos < 264 + textures->height 
          && 164 - Objekt1.Ypos < 264 + textures->height
          && 100 + Objekt1.Xpos < 200 + textures->height 
          && 164 - Objekt1.Ypos < 264 + textures->height) return(true);
    
        return(false); // Objekte sind kollidiert !!!
    }
    

    Ich brauche aber noch eine pixelgenaue Kollisionsabfrage!

    Ich benutze tga files mit einem durchsichtigen Rand von 5 Pixeln.
    Ich hab gelesen dass man eine pixelgenaue Kollisionsabfrage am besten so gestaltet, daß man testet ob sich Pixel überhaupt

    überlappen (BoundingBox), wenn dem so ist testet man ob sich transparente Pixel überlappen ==> Keine Kollision
    oder ob sich transparente und sichtbare Pixel überlappen ==> Kollision !!!

    Ich beiß mir nur grad an der pixelgenauen Kollision die Zähne aus, weiß jemand wie das gemacht wird bzw woher ich Code

    Snippets( 👍 ) oder ein gutes Tutorial zu diesem Thema bekommen kann ? 😕

    Vielen Dank im voraus

    Shadow Eater 🙂



  • gamedev.net ist ne ziemlich gute Seite dafür. Du musst da nur mal Suchen, um Artikel wie diesen oder diesen zu finden...


Anmelden zum Antworten