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 ...
随机推荐
- KMP poj
题目来自:http://www.cnblogs.com/wuyiqi/archive/2012/01/06/2315188.html KMP算法开始是判断字符串b是否是字符串a的子串,朴素的算法是枚举 ...
- 《转》OpenStack Live Migration
This post is based assumption that KVM as hypervisor, and Openstack is running in Grizzly on top of ...
- php与文件操作
一.目录操作 首先是从目录读取的函数,opendir(),readdir(),closedir(),使用的时候是先打开文件句柄,而后迭代列出: <?php $base_dir="fil ...
- [置顶] cocos2d-x 3.0游戏开发xcode5帅印博客教学 004.[HoldTail]主角的上下飞行跟移动
cocos2d-x 3.0游戏开发xcode5帅印博客教学 004.[HoldTail]主角的上下飞行跟移动 写给大家的前言,在学习cocos2d-x的时候自己走了很多的弯路,也遇到了很多很多问题,不 ...
- Excel设置下拉选项的方法
前些日子参加提高班组织的数据采集工作,到各个二级学院搜集数据,当然离不开我们常用的Excel表格了.在这次采集数据的过程过程中还真学到了一两招.就比如在Excel中设置下拉选项的方法. 例如我们要在A ...
- 导航条——flash导航条
1.概述 在一些个性网站中,网站导航的首选就是flash导航条,flash导航条可以给浏览者带来更好的视觉效果,是网站个性的主要体现之一. 2.技术要点 主要应用Flash动作脚本中的Button类的 ...
- cct信息安全
基本信息 全国计算机等级考试三级教程——信息安全技术(2016年版) 作 者:教育部考试中心 编 出 版 社:高等教育出版社 出版时间:2015-12-1 ISBN:9787040443035 ...
- HDU 1254 推箱子游戏(搞了一下午。。。)
中文题目:http://acm.hdu.edu.cn/showproblem.php?pid=1254 一开始常规的人用来做主导,想着想着不对劲,其实是箱子为主导,人只是箱子能否推进的一个判断. 可以 ...
- [置顶] Oracle 11g Data Guard Role Transitions: Failover
Role TransitionsInvolving Physical Standby Databases A database operates in one of the following mut ...
- CentOS5.6下安装Oracle10G软件 【保留报错经验】
CentOS5.6下安装Oracle10G ****************************************************************************** ...