03-pygame 键盘与鼠标

321 阅读3分钟

这是我参与8月更文挑战的第3天,活动详情查看:8月更文挑战

你好,我是悦创。前面一便天我们学习了:02-pygame 图片处理 接下来学习 pygame 的键盘与鼠标。

目录

  1. 绘制图形
  2. 键盘事件处理
  3. 鼠标事件处理

1. 绘制图形

案例 1:新建文件,准备好如下代码,然后添加实现绘制功能的代码。

为了防止代码和文字比超过活动的规则要求,有需要复制代码的,可以去我的公众号:AI悦创,文章里面复制。

image.png

在循环部分添加如下几行代码,实现绘制图形。

虽然,上面有注释,我还是稍微讲一下。

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 中的任意一个,就会动一下位置。

image.png

代码说明:

  • 使用键盘前,先要键入键盘值,通过 import * 表示导入所有键盘值。
  • 键盘也是一种事件,所以和退出处理类似,直接用按键值来处理退出也可以。
  • 获取到事件类型 KEYDOWN,说明键盘按下了,就可以用事件内的 key 来判断,键盘值都是用 K_a 形式命名的,按键字母就是 K_对应字母

3. 鼠标事件处理

案例 3:鼠标处理演示,如下代码实现的功能是用鼠标点一下圆形内部,圆形就改变颜色。

image.png

代码解析:

  • 因为要随机新颜色和计算是否单击在圆形内部,所以导入 randint 和 math 两个库用来随机计算。
  • 鼠标也是⌚️,类型如果是 MOUSEBUTTONDOWN 说明鼠标按下了,这时可以获取鼠标的信息。
  • 鼠标按下的键位,用 1、2、3 表示左、中、右,所以 “==1” 说明在左键按下。
  • 鼠标的位置,在 event.pos 里面,是一个元祖,pos[0] 是 x,pos[1] 是 y;这里计算距离使用了两点距离公式 (x1 - x2)^2 + (y1 - y2)^2 并开方。

AI悦创-V:Jiabcdefh