用python tkinter设计一个小球随机移动的程序,可以观察到小球随机移动
时间: 2023-09-03 07:15:44 浏览: 59
以下是一个简单的小球随机移动程序的Python Tkinter代码示例:
```python
import tkinter as tk
import random
class Ball:
def __init__(self, canvas, color, size):
self.canvas = canvas
self.id = canvas.create_oval(10, 10, size, size, fill=color)
self.canvas.move(self.id, 245, 100)
self.x_speed = random.randint(-5, 5)
self.y_speed = random.randint(-5, 5)
self.canvas_height = self.canvas.winfo_height()
self.canvas_width = self.canvas.winfo_width()
def draw(self):
self.canvas.move(self.id, self.x_speed, self.y_speed)
pos = self.canvas.coords(self.id)
if pos[1] <= 0 or pos[3] >= self.canvas_height:
self.y_speed = -self.y_speed
if pos[0] <= 0 or pos[2] >= self.canvas_width:
self.x_speed = -self.x_speed
root = tk.Tk()
root.title("Ball")
canvas = tk.Canvas(root, width=500, height=400)
canvas.pack()
ball1 = Ball(canvas, "red", 50)
ball2 = Ball(canvas, "blue", 70)
ball3 = Ball(canvas, "green", 30)
while True:
ball1.draw()
ball2.draw()
ball3.draw()
root.update()
tk.time.sleep(0.01)
root.mainloop()
```
该程序创建了一个Ball类来表示小球,包含了小球的颜色、大小、位置、速度等信息,并定义了小球的运动规则。主程序中创建了三个小球对象,并在一个循环中不断调用它们的draw()方法来更新小球的位置,从而实现小球的随机移动。程序使用了Tkinter的Canvas组件来绘制小球,并使用了time模块来实现小球移动的延迟效果。