目录
- 绘制图形
- 键盘事件处理
- 鼠标事件处理
1. 绘制图形
案例 1:新建文件,准备好如下代码,然后添加实现绘制功能的代码。
在循环部分添加如下几行代码,实现绘制图形。
虽然,上面有注释,我还是稍微讲一下。
A. 绘制函数都在 draw 层下面,画什么都写对应函数名,比如直线是 line() ,圆是 circle() 。
B. 这几个绘制函数的参数都差不多,前两个参数都是绘制显示的目标和颜色,不同点在于第三项,虽然第三个都是坐标,但是 line() 里面 (100, 300) 和 (200, 300) 表示线的起点终点坐标;rect() 里面 10、20 表示矩形左上角坐标,100、100 表示 x、y 方向的长度;circle() 里面是圆心,50 是半径;最后的 2、10、0 都是表示线的粗细,填 0 表示实心。
那我们来看看运行结果吧。
其他的线,请忽略。有可能是我 Mac 电脑的问题。
2. 键盘事件
案例 2: 案例 1 部分的代码中删去矩形、直线、退出处理,然后来编写键盘检测、用键盘来控制圆形的位置,按一下 w、s、a、d 中的任意一个,就会动一下位置。
代码说明:
使用键盘前,先要键入键盘值,通过 import * 表示导入所有键盘值。
键盘也是一种事件,所以和退出处理类似,直接用按键值来处理退出也可以。
获取到事件类型 KEYDOWN,说明键盘按下了,就可以用事件内的 key 来判断,键盘值都是用 K_a 形式命名的,按键字母就是 K_对应字母 。
3. 鼠标事件处理
案例 3:鼠标处理演示,如下代码实现的功能是用鼠标点一下圆形内部,圆形就改变颜色。
代码解析:
因为要随机新颜色和计算是否单击在圆形内部,所以导入 randint 和 math 两个库用来随机计算。
鼠标也是⌚️,类型如果是 MOUSEBUTTONDOWN 说明鼠标按下了,这时可以获取鼠标的信息。
鼠标按下的键位,用 1、2、3 表示左、中、右,所以 “==1” 说明在左键按下。
鼠标的位置,在 event.pos 里面,是一个元祖,pos[0] 是 x,pos[1] 是 y;这里计算距离使用了两点距离公式 (x1 - x2)^2 + (y1 - y2)^2 并开方。