python 创建一个窗口 在上面画一个圆并让他随着键盘方向键的按下而左右上下的持续移动
时间: 2024-09-07 12:06:32 浏览: 80
python方向键控制上下左右代码
5星 · 资源好评率100%
在Python中,我们可以使用Tkinter库创建GUI(图形用户界面),并在其中绘制一个动态移动的圆形。下面是一个简单的示例,展示了如何创建窗口、绘制圆形以及处理键盘事件使其跟随方向键移动:
```python
import tkinter as tk
from tkinter import Canvas, ALL, LEFT, RIGHT, UP, DOWN
import math
# 初始化窗口和画布
root = tk.Tk()
canvas = Canvas(root, width=400, height=400)
canvas.pack()
# 圆形的位置和初始坐标
circle_x = canvas.winfo_width() // 2
circle_y = canvas.winfo_height() // 2
radius = 50
circle_color = 'blue'
# 更新圆形位置的方法
def update_circle():
global circle_x, circle_y
dx = {'left': -1, 'right': 1}[event.keysym]
dy = {'up': -1, 'down': 1}[event.keysym]
new_x = circle_x + dx * 5
new_y = circle_y + dy * 5
if new_x < radius or new_x > canvas.winfo_width() - radius or \
new_y < radius or new_y > canvas.winfo_height() - radius:
return
canvas.delete('circle')
x1, y1 = circle_x - radius, circle_y - radius
x2, y2 = circle_x + radius, circle_y + radius
canvas.create_oval(x1, y1, x2, y2, fill=circle_color, tag='circle')
circle_x, circle_y = new_x, new_y
root.after(100, update_circle) # 每隔100毫秒更新一次
# 监听键盘事件
root.bind('<Key>', update_circle)
# 运行主循环
root.mainloop()
阅读全文