Unexpected Character Movement

Happy New Year,
I ran you code and it is working just fine. What I am particularly interested in is the following:

  text(Directions[w], x2, y2-(textDescent()-textAscent())/2); //calculated

I believe that I understand the concept of text decent and text ascent. But your usage here has me scratching my head. I know it works because I can see it. You use the ascent/descent to modify the Y axis but you don’t modify the X axis. Your method is much better than mine so I am changing my compass and clock coding to use your method. I need to work at it a little.
Thank you again.