Вызывая Tk() каждый раз, вы создаете новый экземпляр класса, а строка tk=tkinter просто присваивает переменной tk библиотеку. Для создания
одного окна вы должны вызвать Tk() только
один раз и затем модифицировать только один экземпляр класса.
from tkinter import Tk, Canvas
import random
import time
class Ball:
def __init__(self, canvas, color):
self.canvas = canvas
self.id = canvas.create_oval(10, 10, 25, 25, fill=color)
self.canvas.move(self.id, 245, 100)
def draw(self):
pass
tk = Tk()
tk.title("game")
tk.resizable(0, 0)
tk.wm_attributes("-topmost", 1)
canvas = Canvas(tk, width=500, height=400, bd=0, highlightthickness=0)
canvas.pack()
tk.update()
ball = Ball(canvas, "red")
while True:
tk.update_idletasks()
tk.update()
time.sleep(0.01)