先看一下我做的demo:

当玩家按下键盘上的:上,下,左,右键的时候,后台会打印出玩家所按键的数字值,而图形会随之移动

这是客观上面存在的现象。

那么啥是事件呢?

你叫我做出定义,我不知道,我只能举个例子说明,例如接下来的代码中,列出来一些关于游戏中的事件

'''事件                         产生途径                            参数QUIT                       用户按下关闭按钮                    noneATIVEEVENT                 Pygame被激活或者隐藏                    gain, stateKEYDOWN                    键盘被按下                            unicode, key, modKEYUP                      键盘被放开                            key, modMOUSEMOTION                鼠标移动                            pos, rel, buttonsMOUSEBUTTONDOWN            鼠标按下                            pos, buttonMOUSEBUTTONUP              鼠标放开                            pos, buttonJOYAXISMOTION              游戏手柄(Joystick or pad)移动           joy, axis, valueJOYBALLMOTION              游戏球(Joy ball)?移动            joy, axis, valueJOYHATMOTION               游戏手柄(Joystick)?移动            joy, axis, valueJOYBUTTONDOWN              游戏手柄按下                            joy, buttonJOYBUTTONUP                游戏手柄放开                            joy, buttonVIDEORESIZE                Pygame窗口缩放                    size, w, hVIDEOEXPOSE                Pygame窗口部分公开(expose)            noneUSEREVENT                  触发了一个用户事件                    code
'''

如鼠标按下事件,鼠标放开事件,键盘按下事件.....

这些事件的发生都伴随着一个动作的发生,正是因为有动作的发生,所以我们才可以扑捉到这些动作,从而做出相应的反应

如,我们按下键盘的左键,图片就向左移动一段距离...

================================================

代码部分:

================================================

 1 #handle the key event2 3 import pygame4 from pygame.locals import *5 from sys import exit6 7 '''8     事件                         产生途径                            参数9     QUIT                 用户按下关闭按钮                    none
10     ATIVEEVENT                 Pygame被激活或者隐藏                    gain, state
11     KEYDOWN                 键盘被按下                            unicode, key, mod
12     KEYUP                 键盘被放开                            key, mod
13     MOUSEMOTION                 鼠标移动                            pos, rel, buttons
14     MOUSEBUTTONDOWN         鼠标按下                            pos, button
15     MOUSEBUTTONUP         鼠标放开                            pos, button
16     JOYAXISMOTION         游戏手柄(Joystick or pad)移动           joy, axis, value
17     JOYBALLMOTION         游戏球(Joy ball)?移动            joy, axis, value
18     JOYHATMOTION         游戏手柄(Joystick)?移动            joy, axis, value
19     JOYBUTTONDOWN         游戏手柄按下                            joy, button
20     JOYBUTTONUP                 游戏手柄放开                            joy, button
21     VIDEORESIZE                 Pygame窗口缩放                    size, w, h
22     VIDEOEXPOSE                 Pygame窗口部分公开(expose)            none
23     USEREVENT                 触发了一个用户事件                    code
24 '''
25 __author__ = {'name' : 'Hongten',
26               'mail' : 'hongtenzone@foxmail.com',
27               'blog' : 'http://www.cnblogs.com/hongten',
28               'QQ'   : '648719819',
29               'Version' : '1.0'}
30
31 BG_IMAGE = 'C:\\test\\1.gif'
32
33 pygame.init()
34 screen = pygame.display.set_mode((500, 500), 0, 32)
35 bg = pygame.image.load(BG_IMAGE).convert()
36
37 x, y = 0, 0
38 move_x, move_y = 0, 0
39
40 while 1:
41     for event in pygame.event.get():
42         #print(event.type)
43         if event.type == QUIT:
44             exit()
45         if event.type == KEYDOWN:
46             print(event.key)
47             #event.key返回的是一个数字值,而K_LEFT,K_UP,K_RIGHT,K_DOWN等都是常量,
48             #他们代表的也是一个数字值,这些数字值可以用:print(event.key)获取到
49             #如:K_LEFT = 276
50             #   K_UP = 273
51             #所以下面的代码可以替换为:
52             #if event.key == 276:
53             #    move_x = -10
54             if event.key == K_LEFT:
55                 move_x = -10
56             elif event.key == K_UP:
57                 move_y = -10
58             elif event.key == K_RIGHT:
59                 move_x = 10
60             elif event.key == K_DOWN:
61                 move_y = 10
62         elif event.type == KEYUP:
63             move_x = 0
64             move_y = 0
65
66         x += move_x
67         y += move_y
68         #print(x, y)
69
70         screen.fill((0, 0, 0))
71         screen.blit(bg, (x, y))
72         pygame.display.update()

参考资料:

http://eyehere.net/2011/python-pygame-novice-professional-2/

pygame系列_游戏中的事件相关推荐

  1. pygame系列_原创百度随心听音乐播放器_完整版

    程序名:PyMusic 解释:pygame+music 之前发布了自己写的小程序:百度随心听音乐播放器的一些效果图 你可以去到这里再次看看效果: pygame系列_百度随心听_完美的UI设计 这个程序 ...

  2. e的矩阵次方_利用状态转移矩阵和VBA求游戏中各种事件达成次数的期望

    在工作中计算经济数值的时候,经常会遇到需要计算各种事件完成期望的工作(比如计算集齐一套特定的卡牌搭配需要抽多少次--).本文就介绍一种比较快捷的计算方法. 一般来说,计算期望有以下几种方法: 依据期望 ...

  3. unity3d如何获知场景中需要加载的数据_游戏中遮挡剔除方案总结

    这是侑虎科技第507篇文章,感谢作者FrankZhou供稿.欢迎转发分享,未经作者授权请勿转载.如果您有任何独到的见解或者发现也欢迎联系我们,一起探讨.(QQ群:793972859) 作者主页:htt ...

  4. buff系统 游戏中_游戏中的技能如何而来? 为ARPG设计一个好用的BUFF系统

    游戏中有宏大的场景地图,丰富的游戏剧情,逼真的人物角色.但要让角色(职业)炫酷起来,还是要靠各个职业的技能来烘托.技能系统,根据游戏类型不同而会有不同,ARPG.回合类RPG.SLG类各个游戏都有技能 ...

  5. java游戏最终boss烛龙_游戏中劝退玩家的变态小怪!神装扛不住它一击,难度秒杀最终BOSS?...

    原标题:游戏中劝退玩家的变态小怪!神装扛不住它一击,难度秒杀最终BOSS? 各大游戏中,许多变态BOSS经常让我们头痛不已. FF15中的精金龟就是其中的一位,562万点的超高血量和防御一度成为了不少 ...

  6. matlab中blur函数_游戏中的PostProcessing(后处理)

    PostProcessing是现代游戏中必不可少的技术之一,本文简单来总结下PostProcessing的实现原理和应用.因为详细写起来需要很大篇幅且很费时间,这里只简单介绍下原理. 1.基础部分 P ...

  7. x轴z轴代表的方向图片_游戏中到底是Z轴朝上还是Y轴朝上?

    本文转自我的公众号--游戏开发那些事 在谈到游戏世界中的坐标轴时,我们经常会看到这样的争论. "游戏中Y轴是向上的好么?这你都不知道?" "不对,空间直角坐标系不就是Z轴 ...

  8. java erlang 游戏_游戏中最近可达点(用erlang写一个简单算法)

    游戏中有点击障碍点,人物走到离障碍物最近点的算法.我这给一个简单的算法,这个问题可以复杂化,另外这个问题应该由客户端来完成. 如图,玩家在b点,点击了a点,a在一个障碍区(红色,玩家只能在障碍区外移到 ...

  9. dex是什么的缩写_游戏中的STR CON、 INT、DEX是什么意思?

    展开全部 1.STR(力量.物理攻击) 在游戏中,物理攻击是以拿着钝器.锐器类的器攻击,一切都以为量为主.它是不同于魔法636f707932313133353236313431303231363533 ...

最新文章

  1. opencv--车牌识别
  2. php mssql 端口,MSSQL_SQL Server端口更改后的数据库连接方式,SQL Server端口,大家可以通过quot - phpStudy...
  3. 计算机internet服务,计算机基础与应用——04Internet上的信息服务.ppt
  4. mysql 主键 下一个值_INNODB自增主键的一些问题 vs mysql获得自增字段下一个值
  5. 通信工程制图期末考试大纲
  6. 人人可懂的机器学习入门要点和阅读路径:学什么?怎样学?
  7. 什么是计算机剪贴板介绍,剪贴板在哪里,详细教您如何打开电脑剪贴板
  8. OpenCV:轮廓检测、查找轮廓、绘制轮廓、凸包、图像的矩特征
  9. 计算机网络地址设置,如何设置电脑ip地址?电脑ip地址设置图文教程
  10. Android Debug Bridge
  11. python基础练习题:查找首都【难度:1级】--景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶
  12. 数字转换成英语的程序(c++实现)
  13. mysql 安装gbk字符_mysql安装gbk字符集
  14. 爬取新浪微博热搜排行
  15. Flex 布局教程:语法篇
  16. 多思计组实验实验四、数据通路实验
  17. DICOM医学图像处理:DICOM存储操作之 “多幅JPG图像数据存入DCM文件”
  18. MacBook M1配置Pytorch
  19. JavaScript函数
  20. 自己动手DIY微距摄影专业境界(创建流程全记录)

热门文章

  1. 经典C语言程序100例之二一
  2. c语言 枚举,位运算
  3. 将视频分成一帧一帧python_python ffmpeg任意提取视频帧的方法
  4. B15_NumPy 矩阵库(Matrix)(empty(),zeros(),ones(),eye(),identity(),rand())
  5. 史上最简单的SpringCloud教程 | 第七篇: 高可用的分布式配置中心(Spring Cloud Config)
  6. 【Keil C51】使用 watch1 来查看变量的值
  7. 13寸笔记本电脑尺寸_2020笔记本电脑推荐(华为篇)
  8. 计算机信息系统安全保护条例最新,计算机信息系统安全保护条例.doc
  9. opencv同时开启两个外接USB摄像头采集图像信息,并设置摄像头输出图像的分辨率
  10. Spring Cloud Feign设计原理