Hmm, mit der Abfrage hast du gewissermaßen recht. Dadurch wird allerdings der Bereich kleiner in dem geprüft wird, wodurch es leichter vorkommen kann, dass ein Schuss nicht trifft (wenn man extreme Werte verwendet (besonders kleine oder schnelle Gegner / Schüsse)).
Dazu ein Beispiel:
Zitat Zitat
Der Schuss hat die Koordinaten (10|120) und den Speed 20. Außerdem die X-Größe 4.
Der Gegner hat die Koordinaten (30|120) und den Speed 8. Außerdem die X-Größe 5.

Nun ist die Ausgangsposition:
Schuss: (10|120) Minimum: (7|120) Maximum: (13|120)
Gegner: (30|120) Minimum: (25|120) Maximum: (35|120)

Die Abfragen ermitteln also, dass der Gegner nicht getroffen wird.

Jetzt gehen wir einen Schritt weiter, d.h. die jeweilige Geschindigkeit (ich nenn sie immer "Speed", weils einfach schneller geht ^^) wird addiert, bzw. subtrahiert.

Schuss: (10|120) + (20|0) = (30|120)
Gegner: (30|120) - (8|0) = (22|120)

Die Positioin ist nun also:
Schuss: (30|120) Minimum: (27|120) Maximum: (33|120)
Gegner: (27|120) Minimum: (22|120) Maximum: (32|120)

Die Vereinfachte Abfrage von nur X3 + X4 und Y3 + Y4 würde ergeben, das der Gegner nicht getroffen wird, da keiner im anderen liegt. Nimmt man X1 + X2 und Y1+Y2 hinzu, wäre dies jedoch schon der Fall. Gerade bei sehr kleinen Gegnern ist dies also ein großes Problemfeld...
Daher denke ich muss ich diese Abfrage leider so lassen. Denn sollten Schuss und Gegner zufälligerweise gleich groß sein und sie der Gegnerspeed und Schussspeed auf die Gegner- bzw. Schussgröße addieren, wird es, je größer der dadurch erhaltene Wert ist, unwahrscheinlicher das ein Schuss beim vorbeifliegen trifft...

@Zum Call-Management:
Zitat Zitat
Dadurch ist der Abstand zwischen zwei Überprüfungen eines Schusses/Gegners sehr lange.
Das stimmt so eben nicht. Darum geht es ja gerade beim Call-Management . Dadurch das die Schussbewegung in der gleichen "Call-Reihe" wie die Kollisionsabfrage steht, wird für jede Position die der Schuss hat einmal überprüft ob er trifft. Es geht also ganz nach dem Verfahren:
Zitat Zitat
Schuss X + Schussspeed
Gegner X - Gegnerspeed
Kontrolle ob getroffen wurde
Schuss X + Schussspeed
Gegner X - Gegnerspeed
Kontrolle ob getroffen wurde
...
Dadurch hat man (außer bei den genannten Extremwerten) eine 100% Trefferquote.