pygame鼠标

游戏鼠标的操作大多我们关注的是移动,点击等,pygame有两种(我晓得的)获取鼠标位置,点击。

获取鼠标移动方法1:

事件获取鼠标位置,键按下,弹起,

# 鼠标位置

event.type ==pygame.MOUSEMOTION# 鼠标按下

event.type ==pygame.MOUSEBUTTONDOWN# 鼠标弹起event.type ==pygame.MOUSEBUTTONUP

捕获的事件中,

鼠标位置是:

ifevent.type ==pygame.MOUSEMOTION:# print("移动")

# print(event.pos) # 查看移动的坐标

鼠标按下是:

左 = 1 滑轮 =2 右键=3

ifevent.button ==1:

print("鼠标左键按下")

elifevent.button ==3:print("鼠标右键按起")

鼠标抬起是:

左 = 1 滑轮 =2 右键=3

ifevent.button ==1:print("鼠标左键抬起")

elifevent.button ==3:

print("鼠标右键抬起")

晓得这之后我们就可以做一个跟随鼠标移动的球体了,并且利用鼠标左右键来控制球的大小。

上篇我们提到过,事件获取不能连续获取点击状态所以不能连续获取按下的情况!但是能捕捉到弹起的操作!

测试代码:按下左右键球体体积增大,松开减少!

import pygameW = 600H = 500def main():# 初始化pygame模块pygame.init()# 设置窗口大小screen = pygame.display.set_mode((W,H))# 设置窗口标题pygame.display.set_caption('窗口标题')# 球的初始位置ball_x, ball_y = 0, 0# 球的初始大小q = 30while True:# 重绘屏幕screen.fill((0))for event in pygame.event.get():if event.type == pygame.QUIT:pygame.quit()exit(0)elif event.type == pygame.MOUSEMOTION:# print("移动")# print(event.pos) # 查看移动的坐标ball_x, ball_y = event.poselif event.type == pygame.MOUSEBUTTONDOWN:# print(event)if event.button == 1:print("鼠标左键按下")q += 10elif event.button == 3:print("鼠标右键按起")q += 20elif event.type == pygame.MOUSEBUTTONUP:# print(event)if event.button == 1:print("鼠标左键抬起")q -= 10elif event.button == 3:print("鼠标右键抬起")q -= 20pygame.draw.circle(screen, (255, 0, 0), [ball_x, ball_y], q)# 刷新显示pygame.display.update()if __name__ == '__main__':main()

获取鼠标移动方法2:

利用pygame.mouse 模块来获取鼠标的操作。

我们记几个常用的:

鼠标是否在窗口内:

pygame.mouse.get_focused()

鼠标光标的位置:

ball_x, ball_y =pygame.mouse.get_pos()

鼠标按键:

mouse =pygame.mouse.get_pressed()

返回值是一个元祖,类似(0,0,0)

如果左键按下则返回(1,0,0),

滚轮按下返回(0,1,0),

右键按下返回(0,0,1),

如果鼠标没有松开则一直返回,

返回的频率根据我们界面的刷新频率相同,

1秒返回很多很多次。。。

# 检测程序界面是否获得鼠标焦点ifpygame.mouse.get_focused():# 获取光标位置,2个值ball_x, ball_y =pygame.mouse.get_pos()

# 鼠标点击一次会被捕捉多次,可以通过刷新频率变更clock.tick(30)

# 获取光标的按键情况 3个值,左 滚轮 右mouse =pygame.mouse.get_pressed()

ifmouse[0] ==1:print("左键点击次数")

elifmouse[2] ==1:

print("左键点击次数")

鼠标按下后球体大小改变完整代码:

注意:球体太小会报错, 所以设置个最小值。

import pygameW = 600H = 500def main():# 初始化pygame模块pygame.init()# 设置窗口大小screen = pygame.display.set_mode((W,H))# 设置窗口标题pygame.display.set_caption('窗口标题')# 球的大小q = 30clock = pygame.time.Clock()while True:# 重绘屏幕screen.fill((0))for event in pygame.event.get():if event.type == pygame.QUIT:pygame.quit()exit(0)# 检测程序界面是否获得鼠标焦点if pygame.mouse.get_focused():# 获取光标位置,2个值ball_x, ball_y = pygame.mouse.get_pos()# 鼠标点击一次会被捕捉多次,可以通过刷新频率变更clock.tick(30)# 获取光标的按键情况 3个值,左 滚轮 右mouse = pygame.mouse.get_pressed()if mouse[0] == 1:q += 1print("点击次数")elif mouse[2] == 1:q -= 1# 避免太小太大if q < 20:q = 20if q > 100:q = 20# 画个球pygame.draw.circle(screen, (255, 0, 0),[ball_x,ball_y],q)# 刷新显示pygame.display.update()if __name__ == '__main__':main()

python pygame鼠标点击_Python之pygame学习鼠标操作(12)相关推荐

  1. python pygame鼠标点击_Python中pygame的mouse鼠标事件用法实例

    本文实例讲述了Python中pygame的mouse鼠标事件用法.分享给大家供大家参考,具体如下: pygame.mouse提供了一些方法获取鼠标设备当前的状态 ''' pygame.mouse.ge ...

  2. python控制鼠标点击_python模拟点击中如何操作鼠标位置?

    在进行正式的实战模拟点击之前,我们已经学过了鼠标的简单常用操作.那么大家会运用到python代码中吗?对于python小白来说还是一件困难的事情,毕竟写代码方面不是很擅长.这里小编整理了一些关于鼠标的 ...

  3. python pygame模块按键延迟_Python之pygame学习键盘事件操作(9)

    pygame键盘事件操作 ✕ 什么是事件呢?按下键盘某个按键,鼠标移动,包括点击关闭按钮都可以算是事件操作. pygame中事件模块是pygame.event,官方说法是用于与事件和队列进行交互. 不 ...

  4. python的pygame模块详解_python游戏模块学习之pygame常规操作讲解

    pygame常规操作 导入模块 import pygame # 导入pygame模块 from sys import exit # 导入退出鼠标点击事件 from math import pi # 导 ...

  5. python两人一碰_python运用pygame库实现双人弹球小游戏

    使用python pygame库实现一个双人弹球小游戏,两人分别控制一个左右移动的挡板用来拦截小球,小球会在两板间不停弹跳,拦截失败的一方输掉游戏,规则类似于简化版的乒乓球. 因为是第一次用pygam ...

  6. python制作我的世界_python的pygame制作的2D我的世界

    这是本人去年按照一个英文教程制作的一个2D简单版本的Minecraft.代码非本人风格.今天看来,这代码可读性不好.仅以发表出来,以供有需要的人阅读. """游戏规则: ...

  7. python控制软件点击_Python小程序 控制鼠标循环点击代码实例

    Python小程序 控制鼠标循环点击代码实例 这篇文章主要介绍了Python小程序 控制鼠标循环点击代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以 ...

  8. python模拟屏幕点击_python模拟鼠标点击教程

    pip install -i https://pypi.tuna.tsinghua.edu.cn/simple  pywin32 pip install  pyHook?1.5.1?cp37?cp37 ...

  9. python怎样画动态文字_Python之pygame学习绘制文字制作滚动文字

    pygame绘制文字 ✕ 今天来学习绘制文本内容,毕竟游戏中还是需要文字对玩家提示一些有用的信息. 字体常用的不是很多,在pygame中大多用于提示文字,或者记录分数等事件. 字体绘制基本分为以下几个 ...

  10. python编的俄罗斯方块游戏_Python使用pygame模块编写俄罗斯方块游戏的代码实例

    文章先介绍了关于俄罗斯方块游戏的几个术语. 边框--由10*20个空格组成,方块就落在这里面. 盒子--组成方块的其中小方块,是组成方块的基本单元. 方块--从边框顶掉下的东西,游戏者可以翻转和改变位 ...

最新文章

  1. 【Leetcode】 刷题之路1(python)
  2. Redlock——Redis集群分布式锁
  3. JSP标签和JSTL标签注意点
  4. web前端超出两行用省略号表示
  5. PHP5.6.6上运行 ecshop 2.7.3常见问题处理
  6. CoreML实现的MobileNet
  7. 返回值与返回引用的问题
  8. full outer join 与full join的区别_sleep、yield、join都是干啥的? sleep与wait有啥区别?中篇[十五]...
  9. Linux技术研究-基础篇(启动和自动挂载)
  10. linux mysql可视化_常用的 7 款 MySQL 客户端工具,你值得拥有!
  11. 编写算法判别给定二叉树是否为完全二叉树_推荐一位实力超强的平安前端算法大佬:瓶子君...
  12. Linux下的free命令
  13. 封装dialog弹窗
  14. 编译OpenJDK12:globalDefinitions_visCPP.hpp(46): fatal error C1083:inttypes.h No such file or directory
  15. 汉字在字库中的偏移地址计算
  16. unity实现游戏帧同步之确定性物理引擎
  17. idea导入myeclipse项目以后报错,配置文件灰色以及 com.alipay.demo.trade.Main test_trade_precreate 严重: 系统异常,预下单状态未知
  18. 8.1 有监督学习算法
  19. WindowsCluster 由于在更新安全DNS区域时访问被拒绝,群集网络资源无法注册一个或多个关联的DNS名称
  20. IDA pro与x64dbg地址对齐

热门文章

  1. android图形开发工具,Android开发实现的几何图形工具类GeometryUtil完整实例
  2. vim/nvim键盘映射
  3. Unix网络编程卷1学习总结
  4. dnf脚本是php,dnf自动搬砖脚本教程autojs在使用
  5. c#开发的一套完整的题库管理系统
  6. Pug/jade快速上手教程
  7. 安全技巧:映像劫持与反劫持技术
  8. visio premium 2010 产品密钥
  9. Adapter模式 适配器模式
  10. 产品经理技能学习:流程图绘制及规范