本节我们再将鼠标的事件引入到这个动画中,要做什么呢?就是在动画中,如果按下鼠标左键,小球会停止移动,如果松开左键,小球会移动到鼠标的位置,然后继续刚才的运动;如果按下鼠标左键不放,移动鼠标,小球就会跟随鼠标移动,感觉是鼠标在拖动小球一样,鼠标松开,小球继续之前的运动。

分解:

一、如果按下鼠标左键,小球会停止移动

(1)判断鼠标按下事件:event.type == pygame.MOUSEBUTTONDOWN

怎么知道是左键还是右键?event.button = 鼠标按下键编号 (取值为整数,左键为1,右键为3)

(2)让小球停止运动,这个怎么做,其实很简单,我们需要新建一个变量isstop=False,在主循环中,如果isstop==true我们就停止执行小球对象的move()方法即可。

二、如果松开左键,小球会移动到鼠标的位置,然后继续刚才的运动

(1)鼠标松开事件;event.type == pygame.MOUSEBUTTONUP

(2)小球移动到鼠标,继续运动。继续运动很简单,只要将我们上一步的变量isstop设置为false。

(3)怎么移动到鼠标呢?这里需要通过一个简单的计算,如图。

小球的坐标x、y也就是它距左边和顶部的距离( ballrect.left,ballrect.top),鼠标的当前坐标(event.pos[0],event.pos[1]),因此小球要到鼠标的位置就要在x方向上移动event.pos[0] - ballrect.left;y周方向移动event.pos[1] - ballrect.top。

三、如果按下鼠标左键不放,移动鼠标,小球就会跟随鼠标移动

(1)判断鼠标移动移动事件event.type == pygame.MOUSEMOTION

(2)进一步判断是哪个键被按下,event.buttons[0,0,0] 对应鼠标的三个键,鼠标移动时,这三个件处于按下状态,对应的位置值为1

(3)小球移动到鼠标位置,跟第二部完全相同。

四、控制小球暂停还是运动

在监视显示器是否是活动状态来控制游戏是否暂停还是继续的代码处,增加一个监视isstop是否暂停的条件,找到if pygame.display.get_active(),修改为:if pygame.display.get_active() and not isstop:

完整的程序代码:

本站内容未经许可,禁止任何网站及个人进行转载。

python弹球游戏绑定鼠标事件_用python和pygame游戏编程入门-弹球[鼠标控制]相关推荐

  1. python中tkinter鼠标事件_按下鼠标按钮(按住)的Tkinter事件?

    更新:这是一个版本问题.该事件不会在单击Python3.6.1时触发,但可以在我目前测试过的2.7上运行.在 更新:Bryan的回答确实解决了我的事件不能正常工作的问题,但是在我的3.6.1版本的py ...

  2. python弹球游戏双球代码键盘操作_python运用pygame库实现双人弹球小游戏

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

  3. python实现模拟按键下拉_利用 Python 实现 Windows 下的鼠标键盘模拟

    本来用按键精灵是可以实现我的需求,而且更简单,但既然学python ,就看一下呗. 依赖: pip install PyUserInput PyUserInput 依赖 pyhook,所以还得安装 p ...

  4. 正确绑定键盘事件_事件为何重要以及如何正确处理

    正确绑定键盘事件 玛丽娜·佩奇 ( Marina Paych )在她的生日那天离开了一个非政府组织,开始了IT行业的新起点时,她是开源软件的新来者. 但是真正的惊喜竟然是开源. 快进两年了,这个组织发 ...

  5. python飞机大战跟随鼠标移动_用Python写飞机大战游戏之pygame入门(4):获取鼠标的位置及运动...

    # -*- coding: utf8 -*- background_image_filename = 'background.png' mouse_image_filename = 'hero.png ...

  6. python物体跟着鼠标走_用Python写一个跟随鼠标运动的自定义窗口

    背景:因为项目需要,要开发一个在PC上运行的应用程序,生成一个跟随鼠标运动的窗口,并且监听鼠标的点击事件,并在窗口上做相应的显示. 平台:Win7 64位 + Python27 64位 支持库:PyH ...

  7. python开心消消乐辅助_用Python写个开心消消乐小游戏

    提到开心消消乐这款小游戏,相信大家都不陌生,其曾在 2015 年获得过玩家最喜爱的移动单机游戏奖,受欢迎程度可见一斑,本文我们使用 Python 来做个简单的消消乐小游戏. 实现 消消乐的构成主要包括 ...

  8. python版植物大战僵尸源码_基于python的植物大战僵尸游戏设计与实现.docx

    湖南理工学院毕业设计(论文) PAGE PAGE 1 学 号 毕业设计(论文) 题目:基于python的植物大战僵尸游戏设计与实现 作 者 届 别 届 院 别 信息与通信工程学院 专 业 信息工程 指 ...

  9. python实现按键精灵的功能_利用Python实现Windows下的鼠标键盘模拟的实例代码

    本文介绍了利用Python实现Windows下的鼠标键盘模拟的实例代码,分享给大家 本来用按键精灵是可以实现我的需求,而且更简单,但既然学python ,就看一下呗. 依赖: pip install ...

最新文章

  1. 【大牛系列教学】java商城推荐算法
  2. TortoiseSvn
  3. [Java]==和equals()的区别(按照数据类型区分)
  4. c语言编程函数补充上机题,2011年计算机二级C语言上机操作题及答案(10)
  5. 千里眼摄像头支持对象存储吗_3.5ms超高速写入、支持125℃工作的EEPROM“BR24H-5AC系列”...
  6. 使用J-flash arm下载程序
  7. Java——链表的增删查改
  8. (转)ORACLE之常用FAQ V1.08
  9. 【RevitAPI】BuiltInParameter 枚举项
  10. (4)NS3仿真--AODV协议
  11. Android11.0(R) MTK user版本打开MtkLog功能
  12. 天梯图excl_Excel版CPU天梯图 方便打印.xls
  13. 数据可视化图表总结(一)
  14. 电脑怎么录屏幕视频带声音?电脑录屏教程介绍
  15. 典型竞赛关卡结构分析
  16. 埃尔米特插值法在MATLAB中的应用
  17. u盘插电脑计算机卡了,U盘连接电脑非常卡的解决方法-电脑自学网
  18. 模拟退火算法(Simulated Annealing,SA)的全面讲解及python实现
  19. 在word中如何美观地插入代码
  20. 7 款颜值当道的 Linux 操作系统 !

热门文章

  1. 机器人 铑元素_中国青年化学家元素周期表专辑 | 胡淑贤:我为镨代言
  2. python线程监控_Python实现线程状态监测简单示例
  3. 河北大学计算机在哪学,河北大学计算机科学与技术学院
  4. python动态_python的动态性和_slot_
  5. java web后端技能树_后端技能树修炼:CAP 定理
  6. 安徽工程大学计算机控制,(完整版)安徽工程大学期末考试《计算机控制技术》范围总结2 .pdf...
  7. linux 命令都是bash,Linux 命令分类_bash基础特性
  8. arcgis分隔图层重复出文件_已知坐标点txt文件在ArcGIS中转换成shp数据的两种方法...
  9. spring mail 发送邮件
  10. SPLT(Skimming-Perusal Tracking)算法详解