先看一下我做的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系列_游戏中的事件的更多相关文章

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

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

  2. 2015/11/2用Python写游戏,pygame入门(2):游戏中的事件和显示

    pygame是一个比较大的库,以我这点弱小的实力是没办法详解的.所以我只讲我懂得那些部分,其他部分由大家慢慢查找了解. ------------------------------- 我用pygame ...

  3. pygame系列_箭刺Elephant游戏

    这个游戏原名为:Chimp,我们可以到: http://www.pygame.org/docs/tut/chimp/ChimpLineByLine.html 获取到源码和详细的源码讲解 下面是我对游戏 ...

  4. pygame系列_font游戏字体_源码下载

    在pygame游戏开发中,一个友好的UI中,漂亮的字体是少不了的 今天就给大伙带来有关pygame中字体的一些介绍说明 首先我们得判断一下我们的pygame中有没有font这个模块 if not py ...

  5. pygame系列_箭刺Elephant游戏_源码下载

    这个游戏原名为:Chimp,我们可以到: http://www.pygame.org/docs/tut/chimp/ChimpLineByLine.html 获取到源码和详细的源码讲解 下面是我对游戏 ...

  6. pygame系列_font游戏字体

    在pygame游戏开发中,一个友好的UI中,漂亮的字体是少不了的 今天就给大伙带来有关pygame中字体的一些介绍说明 首先我们得判断一下我们的pygame中有没有font这个模块 1 if not ...

  7. pygame系列_小球完全弹性碰撞游戏_源码下载

    之前做了一个基于python的tkinter的小球完全碰撞游戏: python开发_tkinter_小球完全弹性碰撞游戏_源码下载 今天利用业余时间,写了一个功能要强大一些的小球完全碰撞游戏: 游戏名 ...

  8. pygame系列_小球完全弹性碰撞游戏

    之前做了一个基于python的tkinter的小球完全碰撞游戏: 今天利用业余时间,写了一个功能要强大一些的小球完全碰撞游戏: 游戏名称: 小球完全弹性碰撞游戏规则: 1.游戏初始化的时候,有5个不同 ...

  9. pygame系列_draw游戏画图

    说到画图,pygame提供了一些很有用的方法进行draw画图. ''' pygame.draw.rect - draw a rectangle shape draw a rectangle shape ...

随机推荐

  1. 【Demo 0004】Android 布局

    本章学习要点:        1.  了解Android 常见的四种布局结构;        2.  掌握四种布局及混合布局的使用方法:        3.  掌握布局中定义键值的意义以及参数使用方法 ...

  2. android onKeydown

    package wyf.ytl; import android.app.Activity; import android.content.Context; import android.os.Bund ...

  3. hdu 4277

    题目链接 #include <cstdio> //by-ACMer_xiaohao #include <cstring> #include <map> using ...

  4. Git权威指南学习笔记(二)Git暂存区

    例如以下图所看到的: 左側为工作区,是我们的工作文件夹. 右側为版本号库,当中: index标记的是暂存区(stage),所处文件夹为.git/index,记录了文件的状态和变更信息. master标 ...

  5. 使用visual c++ 2005远程调试64位系统上32位与64位程序

    一直都挺喜欢使用visual c++远程调试代码,它能展现给我们当时代码执行最真实的情景,今天有时间记录一下,以免以后忘了. 远程调试需要在被调试端安装服务器,对于visual c++ 2005来说调 ...

  6. 传智播客成都java培训中心秀就业

    传智播客成都java培训中心秀就业 2013年被称为"史上最难就业季",成都传智播客学员如何应对的呢? 成都传智播客的学员在工作经验上颇占优势,我们采用项目驱动式教学模式,具有多年开发实战经验及教学经 ...

  7. codeforces 604A Uncowed Forces

    题目链接:http://codeforces.com/problemset/problem/604/A 题意:求cf比赛每次能够增加的排名,运算规则会告诉你 题目分类:数学 题目分析:用题目给的公式直 ...

  8. hdu2112 HDU Today

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2112 题目分类:SPFA算法+map容器 错误点:红色标记部分 代码: #include<bit ...

  9. 用Qt开发Web和本地混合的应用

    QtWebkit 模块使得Qt widget能够通过HTML的object标签嵌入到web页面中,并通过JavaScript代码进行访问,而Qt对象也能相应的访问web页面元素. 将Qt对象插入到we ...

  10. lightoj 1297(三分)

    传送门:Largest Box 题意:长度为L宽度为W的纸四个角去掉x*x的正方形,然后形成一个长方体,问能组成长方体的最大体积为多少. 分析:三分x求最值. #include <cstdio& ...