💾 Картинки летящей птички для занятия
Урок рассчитан на освоение загружать картинку на полотно окна и на перемещение графических объектов - анимация. По началу необходимо сделать оранжевый или жёлтый круг небольших размеров (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)