Nifty! So looking at this the ray keeps growing until it hits something, but the explosions would always spawn at 100 pixel intervals, at the end of the ray. You can increase the resolution by decreasing the width increase but at the cost of more repeats in your loop which *might* lag.
How about spawning the explosion/hit from the target that got hit instead? After you confirm a hit, spawn the explosion from the sprite that got hit - at an angle back towards the player a certain distance based on the size of the target.
You'll be able to get the distance from the player to the target as well, which can be useful for graphical elements like so the tracer doesn't go through the target (unless you want it to).
Another problem I anticipate: what if there are two targets in close proximity, that both get overlapped when the ray grows? Maybe use another sub event to pick the closest out of the targets that were picked by the ray?