pygame系列_游戏中的事件
先看一下我做的demo:

当玩家按下键盘上的:上,下,左,右键的时候,后台会打印出玩家所按键的数字值,而图形会随之移动
这是客观上面存在的现象。
那么啥是事件呢?
你叫我做出定义,我不知道,我只能举个例子说明,例如接下来的代码中,列出来一些关于游戏中的事件

'''
事件 产生途径 参数
QUIT 用户按下关闭按钮 none
ATIVEEVENT Pygame被激活或者隐藏 gain, state
KEYDOWN 键盘被按下 unicode, key, mod
KEYUP 键盘被放开 key, mod
MOUSEMOTION 鼠标移动 pos, rel, buttons
MOUSEBUTTONDOWN 鼠标按下 pos, button
MOUSEBUTTONUP 鼠标放开 pos, button
JOYAXISMOTION 游戏手柄(Joystick or pad)移动 joy, axis, value
JOYBALLMOTION 游戏球(Joy ball)?移动 joy, axis, value
JOYHATMOTION 游戏手柄(Joystick)?移动 joy, axis, value
JOYBUTTONDOWN 游戏手柄按下 joy, button
JOYBUTTONUP 游戏手柄放开 joy, button
VIDEORESIZE Pygame窗口缩放 size, w, h
VIDEOEXPOSE Pygame窗口部分公开(expose) none
USEREVENT 触发了一个用户事件 code
'''

如鼠标按下事件,鼠标放开事件,键盘按下事件.....
这些事件的发生都伴随着一个动作的发生,正是因为有动作的发生,所以我们才可以扑捉到这些动作,从而做出相应的反应
如,我们按下键盘的左键,图片就向左移动一段距离...
================================================
代码部分:
================================================

1 #handle the key event
2
3 import pygame
4 from pygame.locals import *
5 from sys import exit
6
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系列_游戏中的事件的更多相关文章
- pygame系列_原创百度随心听音乐播放器_完整版
程序名:PyMusic 解释:pygame+music 之前发布了自己写的小程序:百度随心听音乐播放器的一些效果图 你可以去到这里再次看看效果: pygame系列_百度随心听_完美的UI设计 这个程序 ...
- 2015/11/2用Python写游戏,pygame入门(2):游戏中的事件和显示
pygame是一个比较大的库,以我这点弱小的实力是没办法详解的.所以我只讲我懂得那些部分,其他部分由大家慢慢查找了解. ------------------------------- 我用pygame ...
- pygame系列_箭刺Elephant游戏
这个游戏原名为:Chimp,我们可以到: http://www.pygame.org/docs/tut/chimp/ChimpLineByLine.html 获取到源码和详细的源码讲解 下面是我对游戏 ...
- pygame系列_font游戏字体_源码下载
在pygame游戏开发中,一个友好的UI中,漂亮的字体是少不了的 今天就给大伙带来有关pygame中字体的一些介绍说明 首先我们得判断一下我们的pygame中有没有font这个模块 if not py ...
- pygame系列_箭刺Elephant游戏_源码下载
这个游戏原名为:Chimp,我们可以到: http://www.pygame.org/docs/tut/chimp/ChimpLineByLine.html 获取到源码和详细的源码讲解 下面是我对游戏 ...
- pygame系列_font游戏字体
在pygame游戏开发中,一个友好的UI中,漂亮的字体是少不了的 今天就给大伙带来有关pygame中字体的一些介绍说明 首先我们得判断一下我们的pygame中有没有font这个模块 1 if not ...
- pygame系列_小球完全弹性碰撞游戏_源码下载
之前做了一个基于python的tkinter的小球完全碰撞游戏: python开发_tkinter_小球完全弹性碰撞游戏_源码下载 今天利用业余时间,写了一个功能要强大一些的小球完全碰撞游戏: 游戏名 ...
- pygame系列_小球完全弹性碰撞游戏
之前做了一个基于python的tkinter的小球完全碰撞游戏: 今天利用业余时间,写了一个功能要强大一些的小球完全碰撞游戏: 游戏名称: 小球完全弹性碰撞游戏规则: 1.游戏初始化的时候,有5个不同 ...
- pygame系列_draw游戏画图
说到画图,pygame提供了一些很有用的方法进行draw画图. ''' pygame.draw.rect - draw a rectangle shape draw a rectangle shape ...
随机推荐
- VS2010(2012)中使用Unit Testing进行单元测试
原文 VS2010(2012)中使用Unit Testing进行单元测试 使用VS 2012自带的Unit Testing工具进行单元测试是非常方便的.网上关于这方面的例子很多,这篇随笔只起个人学习笔 ...
- java大牛list
1 Java的未来 Java能干什么.不能干什么,一开始就要搞清楚.这对于成为一个纯种的Java程序猿至关重要. 2 构建Java运行环境 Java运行在服务器,服务器都是Linux系统,对于真正程序 ...
- Swift - 环形进度条(UIActivityIndicatorView)的用法
Swift中,除了条形进度条外,还有环形进度条,效果图如下: 1,环形进度条的基本属性 (1)Style: Large White:比较大的白色环形进度条 White:白色环形进度条 Gray:灰色环 ...
- ios添加pre和post build action
再vs中,我们可以很方便的再build前.后执行一些脚本为我们做点什么事情.再ios中怎么搞呢,哪必然是对xcode进行操作了.再google搜索了一把,有说操作Scheme的也有说再直接再targe ...
- mybatis 的简单使用
须要用到的包:(这里仅仅是当中一个版本号.其它的百度) mysql-connector-java-5.1.6-bin mybatis-3.2.2 先看项目文件夹: 配置文件mybatisconfig. ...
- jquery 设置select的默认值
<select id="sel" > <option value="s1" > aaaa </option> <opt ...
- [SVN]两个分支合并
Date:2014-1-1 Summary: 记录一下自己使用SVN时候的操作步骤,先吃鱼,再学钓鱼 Contents: 环境:从同事的branch迁出一份代码,作为自己的分支进行开发,同时同事也在自 ...
- 怎样用js得到当前页面的url信息方法(JS获取当前网址信息)
设置或获取对象指定的文件名称或路径.window.location.pathname 设置或获取整个 URL 为字符串.window.location.href; 设置或获取与 URL 关联的端口号码 ...
- 警惕!iPhone 6即将上市 诈骗邮件已现身网络
随着iPhone 6即将上市,各路小道消息已经開始满天飞.就在近几日,一些记者还收到了假的iPhone 6将要上市的通知邮件.趋势科技也收到了几封,下面是样本之中的一个: (垃圾邮件样本) 不清楚iP ...
- [Python]网络爬虫(十):一个爬虫的诞生全过程(以山东大学绩点运算为例)
先来说一下我们学校的网站: http://jwxt.sdu.edu.cn:7777/zhxt_bks/zhxt_bks.html 查询成绩需要登录,然后显示各学科成绩,但是只显示成绩而没有绩点,也就是 ...