Hello, I am new to python coding and I figured this would be a good place to start. I am currently making a Python Turtle Platforming Game and I am not sure how to make the moving smooth and how to add gravity. Here is the code: (The mapping is 25x25 but the spaces don't show up)

import turtle import math import random wn = turtle.Screen() wn.bgcolor("black") wn.title("Maze Game") wn.setup(1400, 700) wn.tracer(0) class Pen(turtle.Turtle): def __init__(self): turtle.Turtle.__init__(self) self.shape("square") self.color("white") self.penup() self.speed(0) class Player(turtle.Turtle): def __init__(self): turtle.Turtle.__init__(self) self.shape("square") self.color("blue") self.penup() self.speed(0) self.gold = 0 def go_up(self): move_to_x = player.xcor() move_to_y = player.ycor() + 120 if (move_to_x, move_to_y) not in walls or (move_to_y + 120 < 288): self.goto(move_to_x, move_to_y) def go_down(self): move_to_x = player.xcor() move_to_y = player.ycor() - 24 if (move_to_x, move_to_y) not in walls: self.goto(move_to_x, move_to_y) def go_left(self): move_to_x = player.xcor() - 24 move_to_y = player.ycor() def touch_ground(): while turtle.distance(wall) < 24: player.sety(y+1) speed_y = 0 if (move_to_x, move_to_y) not in walls: self.goto(move_to_x, move_to_y) def go_right(self): move_to_x = player.xcor() + 24 move_to_y = player.ycor() if (move_to_x, move_to_y) not in walls: self.goto(move_to_x, move_to_y) def is_collision(self, other): a = self.xcor()-other.xcor() b = self.ycor()-other.ycor() distance = math.sqrt((a ** 2) + (b ** 2)) if distance < 5: return True else: return False levels = [""] level_1 = [ "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "X X", "X XXXX", "X X X", "X XXXXXX X", "X X", "X X", "X X", "XP XXXXXXXX X", "XXXXXXXXXX X", "X X", "X X", "X X", "X XXX X", "X X", "X X", "X X", "X XXXXXXXXXX X", "X X", "X XXXXXXXX X", "X X", "X XXXXXXXXX X", "X XXXXXXXXXXX X", "X X", "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", ] treasures = [] levels.append(level_1) def setup_maze(level): for y in range(len(level)): for x in range(len(level[y])): character = level[y][x] screen_x = -588 + (x * 24) screen_y = 288 - (y * 24) if character == "X": pen.goto(screen_x, screen_y) pen.shape("square") pen.stamp() walls.append((screen_x, screen_y)) if character == "P": player.goto(screen_x, screen_y) if character == "T": treasures.append(Treasure(screen_x, screen_y)) pen = Pen() player = Player() walls = [] setup_maze(levels[1]) turtle.listen() turtle.onkey(player.go_left, "Left") turtle.onkey(player.go_right, "Right") turtle.onkey(player.go_up, "Up") turtle.onkey(player.go_down, "Down") wn.tracer(0) speed_y = 0 while True: for treasure in treasures: if player.is_collision(treasure): player.gold += treasure.gold print ("Player Gold:{}".format(player.gold)) treasure.destroy() treasures.remove(treasure) wn.update()