One thing I noticed is that the first time I tap on the screen it perfectly fires in the required direction but the second time it fires in some random direction. If I repeatedly keep tapping in that direction it adjusts and fires in my direction.
Would you mind providing a link to some code so I can have a closer look? It sounds like one of those problems where you just need a fresh pair of eyes to check over everything and spot the logical error. : )