Pygame实现监听鼠标示例详解

 更新时间:2021年12月15日 15:21:17   作者:我的天才女友  
这篇文章主要介绍了通过Pygame模块实现监听鼠标的功能,文章的示例代码讲解详细,对我们的学习或工作有一定的价值,感兴趣的小伙伴可以了解一下

pygame如何捕捉鼠标的活动

初始化参数

import pygame, sys
from pygame.locals import *


def print_text(font, x, y, text, color=(0, 0, 0)):
    """打印字体函数"""
    img_text = font.render(text, True, color)
    screen.blit(img_text, (x, y))


pygame.init()
screen = pygame.display.set_mode((400, 400))
pygame.display.set_caption("监听鼠标活动")


while True:
    for event in pygame.event.get():
        if event.type == QUIT:
            pygame.quit()
            sys.exit()

    screen.fill((255, 255, 255))

    pygame.display.update()

鼠标移动

event.type 事件为MOUSEMOTION,则为鼠标移动,event.pos可以获取当前位置,event.rel鼠标的偏移。

        	event.type == MOUSEMOTION:
            event.pos
            event.rel

我们将位置输出出来,定义鼠标的位置和鼠标的偏移量

mouse_x = mouse_y = 0
move_x = move_y = 0
	print_text(font1, 0, 0, "鼠标事件")
    print_text(font1, 0, 20, "鼠标的位置:" + str(mouse_x) + "," + str(mouse_y))
    print_text(font1, 0, 40, "鼠标的偏移:" + str(move_x) + "," + str(move_y))

鼠标点击位置

MOUSEBUTTONDOWN和MOUSEBUTTONUP记录鼠标的按下和放开动作

mouse_down = mouse_up = 0
mouse_down_x = mouse_down_y = 0
mouse_up_x = mouse_up_y = 0

输出鼠标位置及其对用的按钮

pygame.mouse.get_pressed() 可以监听鼠标的三个按键。

    x, y = pygame.mouse.get_pos()
    print_text(font1, 0, 180, "鼠标位置:" + str(x) + "," + str(y))

    b1, b2, b3 = pygame.mouse.get_pressed()
    print_text(font1, 0, 200, "按钮:" + str(b1) + "," + str(b2) + "," + str(b3))

完整代码 

import pygame, sys
from pygame.locals import *


def print_text(font, x, y, text, color=(0, 0, 0)):
    """打印字体函数"""
    img_text = font.render(text, True, color)
    screen.blit(img_text, (x, y))


pygame.init()
# 字体
font1 = pygame.font.SysFont("方正粗黑宋简体", 18)
# 鼠标的移动位置
mouse_x = mouse_y = 0
move_x = move_y = 0
mouse_down = mouse_up = 0
mouse_down_x = mouse_down_y = 0
mouse_up_x = mouse_up_y = 0
screen = pygame.display.set_mode((400, 400))
pygame.display.set_caption("监听鼠标活动")


while True:
    for event in pygame.event.get():
        if event.type == QUIT:
            pygame.quit()
            sys.exit()
        elif event.type == MOUSEMOTION:
            mouse_x, mouse_y = event.pos
            move_x, mouse_y = event.rel
        elif event.type == MOUSEBUTTONDOWN:
            mouse_down = event.button
            mouse_down_x, mouse_down_y = event.pos
        elif event.type == MOUSEBUTTONUP:
            mouse_up = event.button
            mouse_up_x, mouse_up_y = event.pos

    screen.fill((255, 255, 255))
    print_text(font1, 0, 0, "鼠标事件")
    print_text(font1, 0, 20, "鼠标的位置:" + str(mouse_x) + "," + str(mouse_y))
    print_text(font1, 0, 40, "鼠标的偏移:" + str(move_x) + "," + str(move_y))
    print_text(font1, 0, 60, "鼠标按下:" + str(mouse_down)
               + "在" + str(mouse_down_x) + "," + str(mouse_down_y))
    print_text(font1, 0, 80, "鼠标松开:" + str(mouse_up)
               + "在" + str(mouse_up_x) + "," + str(mouse_up_y))
    x, y = pygame.mouse.get_pos()
    print_text(font1, 0, 180, "鼠标位置:" + str(x) + "," + str(y))

    b1, b2, b3 = pygame.mouse.get_pressed()
    print_text(font1, 0, 200, "按钮:" + str(b1) + "," + str(b2) + "," + str(b3))
    pygame.display.update() 

以上就是Pygame实现监听鼠标示例详解的详细内容,更多关于Pygame监听鼠标的资料请关注脚本之家其它相关文章!

相关文章

  • 详解Django+Uwsgi+Nginx的生产环境部署

    详解Django+Uwsgi+Nginx的生产环境部署

    这篇文章主要介绍了Django + Uwsgi + Nginx 的生产环境部署,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • 在多种情况/开发环境中运行python脚本和代码的技巧分享

    在多种情况/开发环境中运行python脚本和代码的技巧分享

    Python脚本或程序是包含可执行Python代码的文件,能够运行Python脚本和代码可能是您作为Python开发人员所需的最重要的技能,在本教程中,您将学习一些运行Python脚本和代码的技术,在每种情况下使用的技术将取决于您的环境、平台、需求和技能
    2023-11-11
  • Scrapy框架中的Pipeline使用详解

    Scrapy框架中的Pipeline使用详解

    这篇文章主要介绍了Scrapy框架中的Pipeline使用详解,Scrapy 中的 Pipeline 为我们提供了处理数据的功能,在实际开发中我们经常使用它来清洗/验证数据、去重和数据保存,需要的朋友可以参考下
    2023-10-10
  • Python实现自动化刷抖音的实例

    Python实现自动化刷抖音的实例

    今天我们来学习如何用Python实现自动刷抖音,并为颜值高的的小哥哥小姐姐点赞并评论。感兴趣的可以了解一下
    2021-06-06
  • Python中re模块的元字符使用小结

    Python中re模块的元字符使用小结

    元字符是正则表达式中具有特殊意义的专用字符,本文主要介绍了Python中re模块的元字符使用小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04
  • Python NumPy创建数组方法

    Python NumPy创建数组方法

    这篇文章主要介绍了Python NumPy创建数组方法,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的朋友可以参考一下
    2022-09-09
  • Python基础之python循环控制语句break/continue详解

    Python基础之python循环控制语句break/continue详解

    Python中提供了两个关键字用来控制循环语句,分别是break和continue,接下来通过两个案例来区分这两个控制语句的不同,感兴趣的朋友一起看看吧
    2021-09-09
  • Python库functools示例详解

    Python库functools示例详解

    Python 的 functools 模块提供了一些常用的高阶函数,也就是用于处理其它函数的特殊函数。换言之,就是能使用该模块对 所有可调用对象( 即 参数 或(和) 返回值 为其他函数的函数 ) 进行处理,这篇文章主要介绍了Python库functools详解,需要的朋友可以参考下
    2023-01-01
  • pandas实战:分析三国志人物示例实现

    pandas实战:分析三国志人物示例实现

    这篇文章主要介绍了pandas实战:分析三国志人物示例实现,本文章内容详细,具有很好的参考价值,希望对大家有所帮助,需要的朋友可以参考下
    2023-01-01
  • 对Python 检查文件名是否规范的实例详解

    对Python 检查文件名是否规范的实例详解

    今天小编就为大家分享一篇对Python 检查文件名是否规范的实例详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06

最新评论