Tkinter
Много случайных кругов
from random import * from tkinter import * size = 600 root = Tk() canvas = Canvas(root, width=size, height=size) canvas.pack() diapason = 0 while diapason < 1000: colors = choice(['aqua', 'blue', 'fuchsia', 'green', 'maroon', 'orange', 'pink', 'purple', 'red','yellow', 'violet', 'indigo', 'chartreuse', 'lime',]) x0 = randint(0, size) y0 = randint(0, size) d = randint(0, size/5) canvas.create_oval(x0, y0, x0+d, y0+d, fill=colors) root.update() diapason += 1 root.mainloop()
Движущийся круг
from tkinter import * size = 600 x0 = 300 y0 = 300 r = 25 dx = 2 dy = 2 def move(): global x0, y0 x0 += dx y0 += dy canvas.coords(circle, x0-r, y0-r, x0+r, y0+r) canvas.update() canvas.after(50, move) root = Tk() canvas = Canvas(root, width=size, height=size) canvas.pack() circle = canvas.create_oval(x0-r, y0-r, x0+r, y0+r, fill='red') root.after(50, move) root.mainloop()
Обработка нажатий на клавиатуру
# Написать функцию, обрабатывающую нажатие на клавишу def key_q_pressed(event): print("Pressed Q") def key_left_pressed(event): print("Pressed Left") # Теперь повесим обработку события нажатия на клавишу на вызов функции root.bind("q", key_q_pressed) root.bind("<Left>", key_left_pressed)
Обработка событий мыши
def left_button_clicked(event): print(event.x, event.y) root.bind("<Button-1>", left_button_clicked)
Как получить размеры круга
canvas.coords(circle) - возвращает кортеж из четырех чисел (координаты прямоугольника)
Как создать прямоугольник
rect = canvas.create_rectangle(x0, y0, x1, y1) - возвращает объект "прямоугольник"
Как удалить объект на canvas
canvas.delete(rect) # передаваемый параметр - ссылка на удаляемый объект
Как изменить цвет объекта на canvas
canvas.itemconfig(rect, fill="blue") # передаваемый параметр - ссылка на объект, цвет которого меняется
Документация
http://effbot.org/tkinterbook/
http://python-textbok.readthed[..]GUI_Programming.html
http://cipcnet.insa-lyon.fr/tcc/help/pubs/tkinter/
Что можно писать?
* Арканоид
* Pong (теннис)
* Крестики-нолики с силой тяжести
* Змейка
* Сапёр
* Игра "Жизнь"
* Реверси
* Xonix
* Тетрис
* 2048
* Альтернативные крестики-нолики