Es hat einen eher praktischen Grund.
Bei deiner Version müsste ich 60 mal in der Sekunde einen GRABSPRITE machen, ich weiß nicht wie schnell der Befehl ist o: Dann müsste ich den Endpunkt der Kollision wissen, folglich muss ich ihn noch ausrechnen. (Ich hab mich bei meinem Startpost vertippt, ich weiß den Endpunkt nicht, nur Startpunkt und Winkel) Das ist beides im Grunde kein Problem. (Ausser GRABSPRITE ist sehr langsam, was ich mal nicht annehme)
Das echte Problem allerdings werde ich zu spüren bekommen wenn ich mal viele Bullets auf dem Bildschirm habe. (100 z.B.) Die sind zwar im Grunde keine Linien, aber fliegen in "Linien", dafür bräuchte ich den selben Algorithmus. Ich hab 64x48 Tiles. Das sind 3072, bei 100 Bullets wären das 307.200 Durchläufe. (Und das wären nur die Tiles auf dem Bildschirm! Wenn mein Level scrollt töte ich meine CPU.) Wenn ich allerdings wüsste durch welche "Tile Koordinaten" das Teil "durchfliegt", verkürzen sich die Durchläufe drastisch.