Simple Kollisionsabfrage zweier Quadrate...



  • Hey Leute,

    ich arbeite zur Zeit an einem kleinen Spiel....

    Eines vom Spieler bewegtes Quadrat und ein sich zufällig bewegendes Quadrat befinden sich in einem Spielfeld ( alles 2D Draufischt). Wenn nun die beiden Quadrate kollidieren soll etwas geschehen....

    Hier mein Kollisionsansatz (Kollision soll von allen Seiten möglich sein):
    ____
    | |
    | A |
    |____|

    ____
    | |
    | B |
    |____|

    if(A.x + A.bx > B.x && A.x < B.x + B.bx)
    {
    //Kollision
    }
    

    Das ist eine Kollisionsabfrage auf der X-Achse:

    Wenn die X-Koordinate im linken oberen Punkt von A + Die horizontale Kantenlänge
    größer als
    Die X-Koordinate im linken oberen Punkt von B ist.......

    Ist diese Kollisionsabfrage sinnvoll? Gibt es bessere? Wie sähen diese aus?

    Danke schon mal im V O R R A U S 🙂

    mfg



  • Die ist falsch. Glaub ich- 😃

    if(A.x + A.bx > B.x && A.x < B.x + B.bx)
    

    zu

    if(A.x + A.bx >= B.x && A.x + A.bx <= B.x + B.bx
    || A.x <= B.x + B.bx && A.x >= B.x)//Die Gleich-Kleiner und ~-größer sind natürlich optional
    

    Edit: Jetzt gehts für Links und Rechts.

    Willst du nur wissen ob sie sich berühren?


Anmelden zum Antworten