@BurntRice same remarks as @jonb: indentation seems invalid. For instnce:
def update seems to be internal to def setup
loop on touch seems to be internal to setup, thus done only once
Other remark, in up and down checking, you did swap x and y
self.player.position = (new_y, self.player.position.x)