💾 Картинки летящей птички для занятия
Урок рассчитан на освоение загружать картинку на полотно окна и на перемещение графических объектов - анимация. По началу необходимо сделать оранжевый или жёлтый круг небольших размеров (40x40 или 50x50) и научиться перемещать его автоматически - через команду after(). Затем заменить объект круг картинкой и перемещать уже одну картинку. Только потом переходить в анимации - смене картинок во время движения.
Летящая птичка:
from tkinter import * def load_pics(): a = 1 b = 14 for i in range(a, b + 1): img = PhotoImage(file=f'./bird_right/bird{i}.png') pics1.append(img) def get_img(): return pics1[img_id] def next_img(): global img_id, x img_id += 1 x = x + 10 if x > (wg - 110): x = 0 if img_id > 13: img_id = 0 def paint_img(): can.itemconfig(bird, image=get_img()) can.coords(bird, x, y) def update(): next_img() paint_img() win.after(100, update) pics1 = [] pics2 = [] img_id = 0 x, y = 0, 0 wg = 800 win = Tk() can = Canvas(win, width=wg, height=300, bg="white") load_pics() bird = can.create_image(x, y, image=get_img(), anchor=NW) can.pack() win.after(100, update) win.mainloop()
Птичка летает туда-сюда:
from tkinter import * def load_pics(): a = 1 b = 14 for i in range(a, b + 1): img = PhotoImage(file=f'./bird_right/bird{i}.png') pics1.append(img) for i in range(a, b + 1): img = PhotoImage(file=f'./bird_left/bird{i}.png') pics2.append(img) def get_img(): if n == 1: return pics1[img_id] else: return pics2[img_id] def next_img(): global img_id, x, n img_id += 1 x = x + n * 10 if x > (wg - 110): n = -1 elif x < 0: n = 1 if img_id > 13: img_id = 0 def paint_img(): can.itemconfig(bird, image=get_img()) can.coords(bird, x, y) def update(): next_img() paint_img() win.after(100, update) pics1 = [] pics2 = [] img_id = 0 x, y, n = 0, 0, 1 wg = 800 win = Tk() can = Canvas(win, width=wg, height=300, bg="white") load_pics() bird = can.create_image(x, y, image=get_img(), anchor=NW) can.pack() win.after(100, update) win.mainloop()
TKinter - функции (команды в таблице)
win.after(100, update)
event.keycode
canvas.itemconfig()
canvas.coords()
create_image()
PhotoImage()
- canvas.itemconfig(ob, fill="red", width="200") - изменить свойства объекта ob
- x1, y1, x2, y2 = canvas.coords(ob) получить координаты объекта ob
- canvas.coords(ob, x1, y1, x2, y2) установить новые координаты объекта ob
- event.keycode в keycode находится код нажатой клавиши (применяется в функции, вызываемой в bind())
- img = PhotoImage(file='funny_bird.png')
canvas.create_image(x, 10, anchor=NW, image=img)