SFML Collision !!



  • Hallo meine lieben Forum-Freunde! 😉

    Ich habe ein Problem bei meinem Projekt. Ich bin gerade dabei in C++ mit SFML das Spiel Pong zu programmieren.
    Ich brauchte jetzt eine Klasse, welche mir die Kollision zwischen Ball und Schläger überprüft. Deshalb habe ich mir folgende vom Internet geholt:
    https://github.com/SFML/SFML/wiki/Source:-Simple-Collision-Detection-for-SFML-2

    Jetzt habe isch folgende Fragen:

    1. Was ist dieser Alpha-Wert und was soll ich dabei wählen?
    2. Wo kann ich den Punkt an dem der Ball am Schläger aufprallt abrufen?

    Danke im Voraus! 😃



  • Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (alle ISO-Standards) in das Forum Spiele-/Grafikprogrammierung verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.


  • Mod

    Zwei Kommentare, die nicht direkt die Frage beantworten, aber vielleicht weiter helfen:
    1. Du willst eine Klasse für eine Funktionalität? Du programmierst doch C++? Da stopft man normalerweise nicht zwanghaft alles in Klassen, wie in gewissen anderen Sprachen.
    2. Der Witz an Pong ist doch gerade, dass das Spiel so einfach ist, dass man keine komplizierten Algorithmen benötigt. Wenn deine Spielobjekte ein Punkt (oder Kreis) und ein Rechteck sind, dann gibt es einfache mathematische Formeln, um Kollisionen zu berechnen, man benötigt keine pixelzählenden Algorithmen.



  • Es geht auch supi einfach mit getGlobalBounds().contains(getGlobalBounds()). Das untersucht ob sich zwei Rechtecke überschneiden. Genaueres findet man in der Docu.

    Ich würde dann aber die hitbox, welche dir getGlobalBounds() bei dem Ball liefert etwas transformieren, damit die kleiner wird. Sonst könnte es passieren, dass der Ball an den Ecken dieser hitbox noch abprallt, obwohl er eigentlich am anderen Objekt vorbeifliegen sollte.

    LG


Log in to reply