In my game I have a crossbow type weapon that fires bolts at high speeds that are pinned onto enemies when they collide. They travel at about 3000 pixels/second, any slower and it doesn't look that good. I've tried making the collision polygons larger than the actual bolt. This however still doesn't work great as either the bolt collides and is pinned before or after it looks like it actually hits the enemy. Or if the frame rate is low the bolt will move jerkily through the air and even pass through the enemy all together. Is there a way to do like a delta time independence but with movement? Or is there any other solution to this problem?
Develop games in your browser. Powerful, performant & highly capable.
If I were in you i would try to make several sprites that act like multiple collision detectors in that undected range of 3000 pixels.
Move them along with the arrow and when at least one of them collides with an item, stop the arrow and set its coordinates to the one of the collision detector