2020/7/11上午8点上课内容_Python的tkinter弹球基础

2020/7/11上午8点上课内容_Python的tkinter弹球基础

单击按钮,弹球开始弹来弹去,碰到画布的边缘会反弹。请同学们把程序修改成多个彩色弹球的版本。

import time
from tkinter import *
from tkinter import messagebox  

def ball_born():
    
    t = messagebox.askyesno('这是标题','要弹球出世吗?')
    if not t: return
    b1.configure(state=DISABLED)
    dx = 10
    dy = 10                        # left,top,right,bottom
    ball = canvas.create_oval(50,50,100,100,fill='red',width=5)

    while True:
        canvas.move(ball,dx,dy)  # 移动球水平,垂直
        left,top,right,bottom =  canvas.coords(ball)   # 获取ball的最小矩形
        if left<=0 or right>=480:dx= -dx
        if top<=0 or bottom>=360:dy= -dy
        
        canvas.update()
        time.sleep(0.01)    
    
root = Tk()         # Tk是一个类,实例化一个窗口
root.title('tkinter弹球基础') 
root.geometry('480x400') 
root.config(bg='yellow')

b1 = Button(root,text='开始弹球',command=ball_born)
b1.pack(side=TOP)   # RIGHT,TOP,BOTTOM

##speeds = [[1,2],[2,3],[-1,2]]
##speeds[0][0]
##speeds[0][1]

canvas = Canvas(root,width=480,height=360,bg='cyan')
canvas.pack()

root.mainloop()

李兴球

李兴球的博客是Python创意编程原创博客