player movement

also fixed a huge canvas performance bug by moving stroke() out of the
loop and to the end of the function so it's only called once