Cache sin and cos of player angle, use g.save() and g.restore()