Mar-24-2020, 07:07 PM
Hello!
Tell me, please ... I move the picture in the class using a separate method, and when the picture receives the last coordinate, then it disappears, and I need the picture to not disappear.
Tell me, please ... I move the picture in the class using a separate method, and when the picture receives the last coordinate, then it disappears, and I need the picture to not disappear.
... root = tk.Tk() root.geometry('1200x900+2+10') root.resizable(width = False, height = False) puth = 'C:\\school\\general\\' #основной путь к игре canvas1 = Canvas(root, width = 1200, height = 900, bg = "#536878", highlightthickness = 0) canvas1.place(x = 0, y = 0) im = Image.open(puth + 'image\\biblio.PNG').convert('RGBA') im_01 = ImageTk.PhotoImage(im) fon = canvas1.create_image(0, 0, anchor = NW, image = im_01) canvas1.update() def image_load(): robots = [] path = 'C:\\school\\general\\image\\' for i, filename in enumerate(os.listdir(path)): if filename.find("robot") == False: if (filename.endswith(".png") or filename.endswith(".PNG")): path1 = path + '\\' + filename im = Image.open(path1).convert('RGBA') datas = im.getdata() opacity_level = 0 newData = [] for item in datas: if item[0] == 127 and item[1] == 127 and item[2] == 127: newData.append((0, 0, 0, opacity_level)) else: newData.append(item) im.putdata(newData) robots.append(ImageTk.PhotoImage(im)) starts = Robot(robots) class Robot: def __init__(self, robots): self.robots = robots self.ind = 1 self.y1 = 15 self.rbs = canvas1.create_image(600, 300, anchor = 'nw', image = robots[1]) self.move_rob(self.ind, self.rbs, self.robots, self.y1) def move_rob(self, ind, rbs, robots, y1): self.cadr = self.robots[int(self.ind)] if int(self.ind) == 16: self.ind = 0 if int(self.y1) > 0: self.y1 -= 0.75 else: self.y1 -= 0.1 canvas1.itemconfig(self.rbs, image = self.cadr) canvas1.move(self.rbs, 0, self.y1) if self.ind != 0: self.ind += 0.2 root.after(30, self.move_rob, self.ind, self.rbs, self.robots, self.y1) else: self.robot(self.robots) def robot(self, robots): self.robot_x = canvas1.coords(self.rbs)[0] self.robot_y = canvas1.coords(self.rbs)[1] self.rbs = canvas1.create_image(self.robot_x, self.robot_y, image = self.robots[16]) print('Robot') image_load() root.mainloop()