Das Spiel, an dem ich derzeit arbeite, ist jetzt schon in einem weitem Status, eines der Probleme ist noch die Kollision von bestimmten Objekten.
Gegeben sei ein Rechteck, auf das mit verschiedensten Projektilen aus jedem Winkel geschossen werden kann.
Logischerweise nehme ich die 4 Punkte des Rechtecks für die Kollision.
Bei den Projektilen dachte ich mir, ich nehme den Punkt, welcher zuerst auftrift. Fliegt es zB in einem 90° Winkel nach oben, ist es der oberste Punkt und so weiter.
Es gibt einige sehr schnelle Projektile und ich befürchte, dass bei einer längeren Session auch mal die Framerate in den Keller geht, deswegen habe ich mir folgende Methode ausgedacht.
Es wird die Position des Projektil-Kollisionspunkts im letzen und aktuellen Frame gespeichert.
Im letzen Frame kann das Projektil noch nicht getroffen haben, sonst wäre es ja schon eingeschlagen.
Der aktuelle Punkt kann im Rechteck oder schon ausserhalb liegen.
Nun wird berechnet, ob die Flugbahn des Pojektils in/durch das Rechteck ging und wenn ja, kam es zu Kollision, wenn nicht nicht.
Aktuell sind die Rechteck meistens ziemlich klein, also unter Tilegrösse(25x25). Deswegen und falls ein Projektil nur die Ecke des Rechtecks berühren würde, denke ich, dass es nicht reicht die aktuelle Frameposition zu berücksichtigen.
Ist meine Methode sinnvoll, oder mache ich mir zu viele Sorgen und sie ist einfach unnötig?
Bevor ich jetzt einen grossen Algorithgmus dafür entwickle, würde ich die Frage hier gerne stellen
Ich hoffe ihr versteht was ich meine und könnt mir helfen.
Dickes Danke schonmal in voraus