pygame指南贴
由于练习python的缘故打算搞一个pygame的汇总,因为以前没有接触过这个,感觉还挺好玩学习下自己写着玩。
官网:https://www.pygame.org/news
然后我们从一个flappy bird的程序代码开始熟悉一下这些操作。
字体相关实例:
STAT_FONT = pygame.font.SysFont("comicsans", 50) #创建一个font对象字体为comicsans大小50
功能:
pygame.font.init() —— 初始化字体模块 pygame.font.quit() —— 还原字体模块 pygame.font.get_init() —— 检查字体模块是否被初始化 pygame.font.get_default_font() —— 获得默认字体的文件名 pygame.font.get_fonts() —— 获取所有可使用的字体 pygame.font.match_font() —— 在系统中搜索一种特殊的字体 pygame.font.SysFont() —— 从系统字体库创建一个 Font 对象
显示相关实例:
WIN = pygame.display.set_mode((WIN_WIDTH, WIN_HEIGHT)) #准备一个width*height大小的窗口和屏幕
#Pygame 在任何时间内都只允许有一个显示界面。使用 pygame.display.set_mode() 创建的新显示界面会自动替换掉旧的。
pygame.display.set_caption("Flappy Bird") #窗口名字
一些功能:
pygame.display.init() — 初始化 display 模块 pygame.display.quit() — 结束 display 模块 pygame.display.get_init() — 如果 display 模块已经初始化,返回 True pygame.display.set_mode() — 初始化一个准备显示的窗口或屏幕 pygame.display.get_surface() — 获取当前显示的 Surface 对象 pygame.display.flip() — 更新整个待显示的 Surface 对象到屏幕上 pygame.display.update() — 更新部分软件界面显示 pygame.display.get_driver() — 获取 Pygame 显示后端的名字 pygame.display.Info() — 创建有关显示界面的信息对象 pygame.display.get_wm_info() — 获取关于当前窗口系统的信息 pygame.display.list_modes() — 获取全屏模式下可使用的分辨率 pygame.display.mode_ok() — 为显示模式选择最合适的颜色深度 pygame.display.get_active() — 当前显示界面显示在屏幕上时返回 True pygame.display.iconify() — 最小化显示的 Surface 对象 pygame.display.toggle_fullscreen() — 切换全屏模式和窗口模式 pygame.display.set_gamma() — 修改硬件显示的 gama 坡道 pygame.display.set_gamma_ramp() — 自定义修改硬件显示的 gama 坡道 pygame.display.set_icon() — 修改显示窗口的图标
img相关:
先来一个实例:
img = pygame.image.load(os.path.join("imgs","pipe.png")).convert_alpha() #加载一个图片 路径在当前目录下的imgs下名字叫pipe.png
convert_alpha()方法会使用透明的方法绘制前景对象,因此在加载一个有alpha通道的素材时(比如PNG TGA),需要使用convert_alpha()方法,当然普通的图片也是可以使用这个方法的,用了也不会有什么副作用。
pipe_img = pygame.transform.scale2x(img) #对图像进行放大
下面就是加载并显示这个img图片的方法。
screen = pygame.display.set_mode #和上面那个win一样 screen.blit(img, (0,0)) #00为绘制的起始坐标
相关
pygame.image.load() — 从文件加载新图片 pygame.image.save() — 将图像保存到磁盘上 pygame.image.get_extended() — 检测是否支持载入扩展的图像格式 pygame.image.tostring() — 将图像转换为字符串描述 pygame.image.fromstring() — 将字符串描述转换为图像 pygame.image.frombuffer() — 创建一个与字符串描述共享数据的 Surface 对象
time模块:
实例:
clock = pygame.time.Clock() #创建一个clock跟踪时间 pygame.time.delay(30) #暂停30毫秒
暂停30毫秒这段话写在了while中,也就是游戏run的时候每一轮迭代都要暂停30毫秒,目的为了控制帧数。
相关:
pygame.time.get_ticks() —— 获取以毫秒为单位的时间 pygame.time.wait() —— 暂停程序一段时间 pygame.time.delay() —— 暂停程序一段时间 pygame.time.set_timer() —— 在事件队列上重复创建一个事件 pygame.time.Clock() —— 创建一个对象来帮助跟踪时间
然后看一下程序的功能具体是怎样实现的:
1.Bird类(鸟类)
init函数:里面包含了x坐标、y坐标、图片、跳跃能力、重力等参数。
WIN_HEIGHT = 0
WIN_WIDTH = 0
MAX_ROTATION = 25
IMGS = bird_images
ROT_VEL = 20
ANIMATION_TIME = 5
jump():鸟的跳跃,通过设置vel属性,把重力射

浙公网安备 33010602011771号