03-pygame 键盘与鼠标

简介: 相关内容

目录

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


1. 绘制图形


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

8.png

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

9.png

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


A. 绘制函数都在 draw 层下面,画什么都写对应函数名,比如直线是 line() ,圆是 circle() 。


B. 这几个绘制函数的参数都差不多,前两个参数都是绘制显示的目标和颜色,不同点在于第三项,虽然第三个都是坐标,但是 line() 里面 (100, 300) 和 (200, 300) 表示线的起点终点坐标;rect() 里面 10、20 表示矩形左上角坐标,100、100 表示 x、y 方向的长度;circle() 里面是圆心,50 是半径;最后的 2、10、0 都是表示线的粗细,填 0 表示实心。


那我们来看看运行结果吧。


10.png

其他的线,请忽略。有可能是我 Mac 电脑的问题。


2. 键盘事件


案例 2: 案例 1 部分的代码中删去矩形、直线、退出处理,然后来编写键盘检测、用键盘来控制圆形的位置,按一下 w、s、a、d 中的任意一个,就会动一下位置。


11.png

代码说明:


使用键盘前,先要键入键盘值,通过 import * 表示导入所有键盘值。

键盘也是一种事件,所以和退出处理类似,直接用按键值来处理退出也可以。

获取到事件类型 KEYDOWN,说明键盘按下了,就可以用事件内的 key 来判断,键盘值都是用 K_a 形式命名的,按键字母就是 K_对应字母 。


3. 鼠标事件处理


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

12.png

代码解析:


因为要随机新颜色和计算是否单击在圆形内部,所以导入 randint 和 math 两个库用来随机计算。

鼠标也是⌚️,类型如果是 MOUSEBUTTONDOWN 说明鼠标按下了,这时可以获取鼠标的信息。

鼠标按下的键位,用 1、2、3 表示左、中、右,所以 “==1” 说明在左键按下。

鼠标的位置,在 event.pos 里面,是一个元祖,pos[0] 是 x,pos[1] 是 y;这里计算距离使用了两点距离公式 (x1 - x2)^2 + (y1 - y2)^2 并开方。



10.png

目录
相关文章
|
7月前
|
存储 人工智能 算法
使用 Python 和 Pygame 制作游戏:第九章到第十章
使用 Python 和 Pygame 制作游戏:第九章到第十章
126 0
使用 Python 和 Pygame 制作游戏:第九章到第十章
|
7月前
|
Python
Python使用pygame播放MP3
Python使用pygame播放MP3
92 0
|
24天前
|
JSON 开发工具 git
基于Python和pygame的植物大战僵尸游戏设计源码
本项目是基于Python和pygame开发的植物大战僵尸游戏,包含125个文件,如PNG图像、Python源码等,提供丰富的游戏开发学习素材。游戏设计源码可从提供的链接下载。关键词:Python游戏开发、pygame、植物大战僵尸、源码分享。
|
4月前
|
定位技术 Python
【python】python基于pygame坦克大战游戏设计(源码+图像+操作说明)【独一无二】
【python】python基于pygame坦克大战游戏设计(源码+图像+操作说明)【独一无二】
|
4月前
|
Linux iOS开发 MacOS
【Python】Python基于Pygame疯狂赛车游戏设计(源码+报告)【独一无二】
【Python】Python基于Pygame疯狂赛车游戏设计(源码+报告)【独一无二】
106 1
|
4月前
|
Python
【python】python基于pygame弹珠游戏设计(源码)【独一无二】
【python】python基于pygame弹珠游戏设计(源码)【独一无二】
|
4月前
|
算法 数据安全/隐私保护 UED
【python】python基于Pygame扫雷游戏设计实现(源码+报告)【独一无二】
【python】python基于Pygame扫雷游戏设计实现(源码+报告)【独一无二】
|
6月前
|
开发框架 Python
Python的`pygame`库用于2D游戏开发,涵盖图形、音频和输入处理。
【6月更文挑战第21天】Python的`pygame`库用于2D游戏开发,涵盖图形、音频和输入处理。要开始,先通过`pip install pygame`安装。基本流程包括:初始化窗口、处理事件循环、添加游戏元素(如玩家和敌人)、响应用户输入、更新游戏状态及结束条件。随着项目发展,可逐步增加复杂性。
162 1
下一篇
DataWorks