python的pygame涉猎

开篇祭出pygame官方文档:http://www.pygame.org/docs/ref/pygame.html

pygame的模块很多,例如:

 pygame,顶级模块

   pygame.locals,pygame的常量定义

 pygame.display,pygame的显示表面(surface)

 pygame.event,pygame的事件

以下内容主要关于pgame库的用于控制显示的display模块,用于图像控制的surface模块,用于控制人机交互的event模块。

1、导入模块

import pygame

#import time

2、搭建界面

def main():

‘’‘

============↓

1.创建一个窗口,用来显示内容,窗口大小480px宽,852px高。

如果32位置(对应depth,位深,用多少位来表示颜色)设置错误,会提示pygame.error: Invalid bits per pixel (range is {8...32})(也就是需要设置8-32范围)。

pygame.display.set_mode(resolution=(0,0),flags=0,depth=0)

返回一个surface对象,resolution可以控制生成窗口的大小,flags代表的是扩展选项,depath不推荐设置。

flags控制你想要什么样的显示屏,主要有下面几个,这几个量相当于是全局的常量,使用的时候可以from pygame.locals import *导入

FULLSCREEN,控制全屏,0或者1来控制

HWSURFACE 控制是否进行硬件加速

RESIZABLE 控制窗口是否可以调节大小

对应参数的flags,如

  1. screen = pygame.display.set_mode(SCREEN_SIZE, RESIZABLE, 32)  

’‘’

screen=pygame.display.set_mode((480,852),0,32)
pygame.display.set_caption('飞机大战')

‘’‘

===============↓

2.创建一个和窗口大小的图片,用来充当背景。进行图片格式转换,返回一个surface对象

’‘’

background=pygame.image.load(''./feiji/background.png")


’‘’

================↓


3.把背景图放到窗口中显示,直接while会导致cpu使用率飙升,可以引入time模块sleep方法提高效率。

blit()为surface对象的方法,将一个surface画到调用方法的实例上,其参数有(sourse,dest,area = None,special_flag=0)。

‘’‘


while True:
	#设定需要显示的背景图,(0,0)以左上角为原点,对应参数的dest,向下为y轴正方向,向右为x轴正方向。
	screen.blit(background,(0,0))
	#更新需要显示的内容。update()将内存中的数据显示到屏幕上。
	pygame.display.update()
	#time.sleep(0.01)
	for event in pygame.event.get():	
		#写pygame.QUIT和pygame.display.quit()效果相同;type判断是quit还是键盘按键
 		if event.type==QUIT:exit()#pygame.quit() #函数结束return,循环结束break,程序结束exit()
		elif event.type==KEYDOWN:
			#key判断具体是按了哪个键
			if event.key==K_a or event.key==K_LEFT:print('left')#K_RIGHT,R_SPACE...


以下为pygame.event.get()能获取的事件类型:



待续。。。

好玩:通过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()
	#每次循环都更新一下





   
   


   
   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值