Pygame 学习练习(一):什么是事件?
2014-03-01 23:59
267 查看
重点:Pygme中的所有事件类型
练习1:方向键移动图片
#!/usr/bin/python #-*-coding:utf-8-*- background_image_filename = "/home/yg/Pictures/sushiplate.jpg" #记录图片路径 import pygame from pygame.locals import * from sys import exit mudi = """本段代码是利用事件学习,用户按下键盘方向键,然后移动屏幕中的图片。""" pygame.init() screen = pygame.display.set_mode((800,800),0,32) background = pygame.image.load(background_image_filename) x,y = 0,0 #move记录移动值 move_x,move_y = 0,0 while True: for event in pygame.event.get(): print "event = ",event.type #print K_RIGHT 这样输出,K_RIGHT代表某一个特定的数字 #print QUIT if event.type == QUIT: exit() #在pygame.event.get()从时间队列中获取事件出来,然后判断是什么类型事件 #event.get()函数每次执行后返回eventlist if event.type == KEYDOWN: if event.key == K_RIGHT: move_x = -1 elif event.key == K_UP: move_y = 1 elif event.key == K_DOWN: move_y = -1 elif event.key == K_LEFT: move_x = 1 elif event.type == KEYUP: move_x = 0 move_y = 0 x += move_x y += move_y #fill()是Surface对象的一个方法,他代表了'fill Surface with a solid color‘ #后面的参数代表RGB颜色值,0,0,0 代表黑色,255.255.255代表 screen.fill((255,255,255)) #blit()文档上这样说明"Draws a source Surface onto this Surface", #blit(source, dest, area=None, special_flags = 0) -> Rect #source为要贴的surface对象, screen.blit(background,(x,y)) #经过实验加入注释掉这个方法,那么就会一团黑。 #zhege pygame.display.update()
效果
练习2:通过F键切换全/窗口屏幕
#!/usr/bin/python #-*-coding:utf-8-*- import pygame from sys import exit from pygame.locals import * pygame.init() Pic = (449,300) #记录图片分辨率,为了填充好窗口 screen = pygame.display.set_mode(Pic,0,32) pygame.display.set_caption("Fullscreen Testing") #设置窗口的标题 background_image_filename = "/home/yg/Pictures/1.jpg" background = pygame.image.load(background_image_filename).convert() Fullscreen = False while True: for event in pygame.event.get(): if event.type == QUIT: exit() if event.type == KEYDOWN: #当事件类型为键盘按下时候,event会有三个属性,unicode,key,mod,unicode会记录按了哪个键, #可以用print str(event)打印出来看上面的几个属性信息, print str(event) if event.unicode == u'f': #判断是否按了这个键,按了的话符合条件然后就设置全屏幕 Fullscreen = not Fullscreen #Fullscreen用的太机智了,下一次按就会符合另外一个条件,达到按F可以交替全/非全屏幕 if Fullscreen: screen = pygame.display.set_mode(Pic,FULLSCREEN,32) else: screen = pygame.display.set_mode(Pic,0,32) screen.blit(background,(0,0)) #把背景图片花到surface对象(屏幕那个框框)上。 pygame.display.update() #每次循环都更新一下
效果:
相关文章推荐
- java 基础学习什么是对象第二章练习一
- 委托与事件学习笔记1---什么是委托?
- jquery事件学习练习(CRUD and 滚动公告)
- 事件和委托学习小练习
- Pygame 学习练习(三):画图?
- OpenGL学习-3-键盘事件注册以及投影矩阵变换练习代码
- OpenGL学习-2-鼠标事件响应练习工程代码(排错补档)
- pygame学习笔记(3):运动速率、时间、事件、文字
- OpenGL学习-2-鼠标事件响应练习工程代码
- 委托与事件学习笔记1---什么是委托?
- 委托与事件学习笔记1---什么是委托?
- Pygame 学习笔记(3) - 键盘和鼠标事件
- 委托与事件学习笔记1---什么是委托?
- Pygame 学习练习(二):字体?
- qt练习11 鼠标,按键,滚轮事件学习
- 【第三篇】学习 android 事件总线androidEventbus之发布事件,子线程中接收
- [Q学习]11 Qt事件系统——过滤事件
- 2、什么是监督学习
- [学习笔记]什么是存储过程?
- 一步步学习SPD2010--第七章节--使用BCS业务连接服务(1)--什么是BCS