pygame之surface
Surface定义
Surface是一块矩形显示区域,用来显示任意图像,具有固定的宽、高、像素格式。粗略可以理解为画布,可以在上面绘制图像。此外还可以将一个Surface作为图像复制到另一个Surface上。在第二章-2中提到的pygame.display.set_mode()实际上就是创建了一个display surface对象
创建surface
- 通过pygame.display.set_mode()函数创建display surface(该surface是一个特殊的surface对象)
- 通过pygame.image.load()返回的image surface创建surface对象
- 通过Surface类的构造函数创建Surface对象
Surface((width,height),flag=0,depth=0,masks=None)
Surface((width,height),flags=0,Surface)
注:默认创建一个空Surface,内部所以像素初始化为黑色,构造函数的多个参数中,只有分辨率即表示宽高的二元组必须指定,其余可不做指定
- 通过pygame.font.Font.render()创建对象——在显示文字时候用到
绘制Surface
- fill(color,rect=None,special_flags=0)——指定填充颜色,color表示带填充颜色的RGB或RGBA值,该值为一个三元组或四元组,第二个参数代表颜色填充的目标区域,不指定则填充整个surface,第三个涉及更多高级特性,书中未做介绍。
- blit(sourface,dest,area=None,special_flags=0)——用于将一个Surface对象复制到另一个Surface对象上。第一个参数是源surface对象,即要复制的surface对象。第二个参数未待绘制区域的左上角坐标可以取值一个点的坐标,也可以取Rect对象,取Rect对象时,起关键作用的将是矩形的左上角坐标。第三个参数代表源Surface中需要绘制的区域当需要部分复制时候该参数起作用。只有前两个参数在使用时必须指定
转换surface像素格式
- convert()——把当前surface转换成与屏幕surface一致的像素格式,返回值未转换后的surface对象(不适用于带透明效果的图片)
- convert_alpha()——与convert效果相同,但其适用于带透明效果的图片
获取surface的属性
- get_width()——获取surface的宽度,单位为像素(pixel)
- get_height()——获取surface的高度,单位为像素(pixel)
- get_size()——获取surface的尺寸,返回的是一个二元组(width,height),单位为pixel
- get_rect(**kwargs)——获取surface所在的矩形区域,返回值为一个与surface宽高相等的Rect对象。
案例
# 引入相关模块
import pygame,sys
# 函数声明与定义
def main():# 初始化pygame.init()# 设置窗口大小a=pygame.display.set_mode((400,300))icon=pygame.image.load("2.ico").convert()# 填充背景色为白色a.fill((255,255,255))#绘制到display surface上a.blit(icon, (100,100))c=a.get_size()# 主循环while True:for event in pygame.event.get():print(c)if event.type == pygame.QUIT:# 用户点击叉号结束pygame.quit()sys.exit()# 刷新窗口页面pygame.display.flip()if __name__=='__main__':# 调用函数main()
#注:该代码仅做演示实际操作中不建议把print写到循环中
运行后效果如下:
pygame之surface相关推荐
- Python pygame study surface
本文转载自:http://eyehere.net/2011/python-pygame-novice-professional-6/ 掌握了小小的像素,我们可以使用更加复杂一点的东西了,对,就是图像, ...
- pygame库-Surface类-blit方法的两个参数(source, dest)的含义
做出blit这个动作的人是一个Surface类的实例, 这个人即将在自己身上画图, 他需要两个参数:要画的图片,和画的位置,即source和dest. source的类型是Surface, pygam ...
- Pygame详解(十二):Surface 对象
pygame.Surface Pygame 中用于表示图像的对象. Surface((width, height), flags=0, depth=0, masks=None) -> Surfa ...
- 如何用Pygame写游戏(六)
本文转自:http://eyehere.net/2011/python-pygame-novice-professional-6/ 掌握了小小的像素,我们可以使用更加复杂一点的东西了,对,就是图像,无 ...
- pygame中blit()的参数的说明以及脏矩形动画形成的简要说明
pygame中surface的blit()想必是游戏入门经常用到的方法,但是看了网上的内容,都没什么具体描述的文章,所以斗胆来做个说明,有错的地方敬请指出,毕竟我也才用pygame库没几天. 假设B是 ...
- Pygame 官方文档 - pygame.display
Pygame.display Pygame中用于控制窗口和屏幕显示的模块 pygame.display.init - 初始化display模块 pygame.display.quit - 取消初始化d ...
- Pygame详解(二):display 模块
pygame.display Pygame 中用于控制窗口和屏幕显示的模块. 注:为了适应语境,display 在该文档中有时翻译为"显示",有时翻译为"显示界面&quo ...
- pygame简单伪3d赛车赛道
转换公式 shiju = 300 self.x1 = shiju * x / z self.y1 = shiju * y / z # p3.append((self.x1, self.y1)) # p ...
- python游戏库pygame经典教程
目录 一.Pygame程序基本搭建过程 1.初始化化程序 2.创建Surface对象 3.事件监听 4.游戏循环 二.Pygame Display显示模块详解 1.将Surface对象粘贴至主窗口上 ...
- Pygame最常用的模块详解
Pygame最常用的模块详解 参考:pygame详细教程 参考案例:游戏模块 1. Color类 class pygame.Color Pygame 中用于描述颜色的对象. Color(name) - ...
最新文章
- java,阳历转阴历
- cython安装ubuntu_ubuntu上的Cython独立可执行文件
- 2018-06-25-Python全栈开发day21-part2-time模块介绍
- io操作是指什么_各种IO模型,一篇打尽
- 团队-科学技术器-模块测试过程
- Nginx + pserve + supervisord — The Pyramid Cookbook v0.2
- 最简易上手的numpy学习笔记三
- MyEclipse打包jar 并加入第三方包
- linux中的定时器检测按键,STM32单片机利用定时器实现按键采集
- html位置插入透明动画文字,鼠标放上去,图片上方动态显示半透明说明文字(源码)...
- 如何挑选合适的卫星影像
- 哈工大移动互联网复习
- python开发12306抢票_如何利用 Python 实现12306抢票?
- AI医学影像千亿长坡,“医疗AI第一股”鹰瞳科技为何能滚起雪球?
- ElasticSearch搭建集群
- C++算法篇:DFS超详细解析(2)--- tarjan算法求无向图割边
- 如果生命是那么的脆弱,你会去做些什么?
- python答案大全_大学慕课2020用Python玩转数据答案大全
- Linux-nginx配置文件详解与配置与请求行/头/体过长414、413配置
- (27)打鸡儿教你Vue.js