It sounds like you want something like FastCast, which is a widely used library for things like arrows and bullets.