pygame之事件(一)
来源:互联网 发布:java线程数量 编辑:程序博客网 时间:2024/05/22 05:02
理解事件
让我们写一个简单的脚本来显示所有已经发生的事件。
上一个Hello World事件只有一个QUIT事件发生,这是必要的,除非你想让它永远运行。Pygame也能创建其他的诸如鼠标和键盘的事件来通知你。
事件可以在任何时候产生,而不管你的程序在做什么事情。
检索事件
在上一个例子中,我们用pygame.event.get()去检索一个事件并且从消息队列里移除它,这就像打开了一扇门而让所有人进来。如果使用pygame.event.wait().Pygame 会等待一个事件发生才会继续下去,这个功能在游戏中不太使用,因为游戏都是动态的。
常用事件表
事件说明参数QUIT用户单击关系按钮noneACTIVEEVENTPygame被激活或隐藏gain,stateKEYDOWN键被按下unicode,key,modKEYUP键被释放key,modMOUSEMOTION移动鼠标pos,rel,buttonsMOUSEBUTTONDOWN鼠标按下pos,butonMOUSEBUTTONUP释放鼠标键pos,buttonJOYAXISMOTIONJaystick or pad 被移动joy,axis,valueJOYBALLMOTIONjoy ball被移动joy,ball,relVIDEORESIZEPygame 窗口绽放size ,w,hVIDEOEXPOSEPygame窗口部分或全部公开noneUSEREVENT用户事件被触发code让我们写一个简单的脚本来显示所有已经发生的事件。
#coding=utf-8'''Created on 2013-1-25@author: Administrator'''import pygamefrom pygame.locals import *from sys import exitpygame.init()SCREEN_SIZE=(640,480)screen=pygame.display.set_mode(SCREEN_SIZE,0,32)font = pygame.font.SysFont("arial", 16)font_height=font.get_linesize()event_text = []while True: event = pygame.event.wait() event_text.append(str(event)) #获得时间名称 event_text = event_text[-SCREEN_SIZE[1]/font_height:] #这个切片操作保证了event_text里面只保留一个屏幕的文字 if event.type == QUIT: exit() screen.fill((255,255,255)) y=SCREEN_SIZE[1] - font_height for text in reversed(event_text): screen.blit(font.render(text,True,(0,0,0)),(0,y)) y-=font_height pygame.display.update()
运行后会看到一个简单的窗口,在窗口上面移动鼠标发生MOUSEMOTION事件,窗口上会不停的打印出来坐标,当按下鼠标键的时候也会有相关信息出现。
运行效果图
处理鼠标移动事件:
当你在窗口移动鼠标时,MOUSEMOTION事件会被激发,它们包含三个值:
buttons:鼠标上的三个按键对应一个元组,buttons[0]代表左键,buttons[1]代表中键,buttons[2]代表右键,如果键被按下,它的值为1,否则为0.
pos:鼠标坐标元组
rel:距离元组。
- pygame之事件(一)
- pygame之事件(二)
- Pygame 学习练习(一):什么是事件?
- Python(Pygame)事件处理
- Python:pygame游戏编程之旅一(Hello World)
- Python:pygame游戏编程之旅一(Hello World)
- python之pygame使surface对象移动起来(一)
- pygame常用单词(一)
- pygame编写的坦克游戏(一)
- [python]pygame游戏开发学习(一)
- pyGame编程之初次pygame
- pygame 标志和事件
- 【pygame入门】-- 事件
- pygame运用篇之PlayTheBall游戏制作一
- Silverlight事件之路由事件(一)
- Python:pygame游戏编程之旅七(pygame基础知识讲解1)
- Python:pygame游戏编程之旅七(pygame基础知识讲解1)
- pygame之旅
- OpenCV之鼠标和键盘事件处理
- 红黑树原理和实现(1)
- iOS基础面试题(四)
- 标头停止点不能位于宏或#if块中
- Scrum之Sprint
- pygame之事件(一)
- WordPress 3.5.1发布 修复37个问题
- 游戏后台Cache技术和运用
- [LeetCode] Restore IP Addresses
- 2013年上半年学习计划
- 网站的运营与后期维护
- VC++深入4
- GIS(地理信息系统)是如何发展的?
- HTML控制表格边线显示。