Ich arbeite an einem 2D-Topdown-Shooter und muss jetzt über mein grundlegendes Kollisionssystem für rechteckige Bounding-Boxen hinausgehen.
Ich habe große Levels mit vielen verschiedenen Sprites, die alle unterschiedliche Formen und Größen haben. Die Texturen für die Sprites sind alle quadratische PNG-Dateien mit transparentem Hintergrund. Daher brauche ich auch eine Möglichkeit, um nur eine Kollision zu haben, wenn der Spieler in den farbigen Teil der Textur und nicht in den transparenten Hintergrund läuft.
Ich plane, wie folgt mit Kollisionen umzugehen:
- Überprüfen Sie, ob sich Sprites in Reichweite des Players befinden
- Führen Sie einen Kollisionstest mit einem geraden Begrenzungsrahmen durch
- Mach eine genaue Kollision (Wo ich Hilfe brauche)
Ich habe nichts gegen fortgeschrittene Techniken, da ich dies in Anbetracht all meiner Anforderungen richtig machen möchte, aber ich bin nicht sicher, wie ich das angehen soll. Welche Techniken oder sogar Bibliotheken zu versuchen. Ich weiß, dass ich wahrscheinlich eine Form erstellen und speichern muss, die genau jedes Sprite abzüglich des transparenten Hintergrunds darstellt.
Ich habe gelesen, dass pro Pixel langsam ist, daher halte ich das angesichts meiner großen Anzahl von Objekten nicht für geeignet. Ich habe mich auch mit Box2d befasst, konnte aber nicht viel Dokumentation oder Beispiele dafür finden, wie man es mit SFML zum Laufen bringt.