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相关推荐

  1. Python pygame study surface

    本文转载自:http://eyehere.net/2011/python-pygame-novice-professional-6/ 掌握了小小的像素,我们可以使用更加复杂一点的东西了,对,就是图像, ...

  2. pygame库-Surface类-blit方法的两个参数(source, dest)的含义

    做出blit这个动作的人是一个Surface类的实例, 这个人即将在自己身上画图, 他需要两个参数:要画的图片,和画的位置,即source和dest. source的类型是Surface, pygam ...

  3. Pygame详解(十二):Surface 对象

    pygame.Surface Pygame 中用于表示图像的对象. Surface((width, height), flags=0, depth=0, masks=None) -> Surfa ...

  4. 如何用Pygame写游戏(六)

    本文转自:http://eyehere.net/2011/python-pygame-novice-professional-6/ 掌握了小小的像素,我们可以使用更加复杂一点的东西了,对,就是图像,无 ...

  5. pygame中blit()的参数的说明以及脏矩形动画形成的简要说明

    pygame中surface的blit()想必是游戏入门经常用到的方法,但是看了网上的内容,都没什么具体描述的文章,所以斗胆来做个说明,有错的地方敬请指出,毕竟我也才用pygame库没几天. 假设B是 ...

  6. Pygame 官方文档 - pygame.display

    Pygame.display Pygame中用于控制窗口和屏幕显示的模块 pygame.display.init - 初始化display模块 pygame.display.quit - 取消初始化d ...

  7. Pygame详解(二):display 模块

    pygame.display Pygame 中用于控制窗口和屏幕显示的模块. 注:为了适应语境,display 在该文档中有时翻译为"显示",有时翻译为"显示界面&quo ...

  8. pygame简单伪3d赛车赛道

    转换公式 shiju = 300 self.x1 = shiju * x / z self.y1 = shiju * y / z # p3.append((self.x1, self.y1)) # p ...

  9. python游戏库pygame经典教程

    目录 一.Pygame程序基本搭建过程 1.初始化化程序 2.创建Surface对象 3.事件监听 4.游戏循环 二.Pygame Display显示模块详解 1.将Surface对象粘贴至主窗口上 ...

  10. Pygame最常用的模块详解

    Pygame最常用的模块详解 参考:pygame详细教程 参考案例:游戏模块 1. Color类 class pygame.Color Pygame 中用于描述颜色的对象. Color(name) - ...

最新文章

  1. java,阳历转阴历
  2. cython安装ubuntu_ubuntu上的Cython独立可执行文件
  3. 2018-06-25-Python全栈开发day21-part2-time模块介绍
  4. io操作是指什么_各种IO模型,一篇打尽
  5. 团队-科学技术器-模块测试过程
  6. Nginx + pserve + supervisord — The Pyramid Cookbook v0.2
  7. 最简易上手的numpy学习笔记三
  8. MyEclipse打包jar 并加入第三方包
  9. linux中的定时器检测按键,STM32单片机利用定时器实现按键采集
  10. html位置插入透明动画文字,鼠标放上去,图片上方动态显示半透明说明文字(源码)...
  11. 如何挑选合适的卫星影像
  12. 哈工大移动互联网复习
  13. python开发12306抢票_如何利用 Python 实现12306抢票?
  14. AI医学影像千亿长坡,“医疗AI第一股”鹰瞳科技为何能滚起雪球?
  15. ElasticSearch搭建集群
  16. C++算法篇:DFS超详细解析(2)--- tarjan算法求无向图割边
  17. 如果生命是那么的脆弱,你会去做些什么?
  18. python答案大全_大学慕课2020用Python玩转数据答案大全
  19. Linux-nginx配置文件详解与配置与请求行/头/体过长414、413配置
  20. (27)打鸡儿教你Vue.js

热门文章

  1. kubectl源码分析之rollout restart
  2. 实验三-RIPv2基本配置实验
  3. 直播软件技术介绍,能帮到你
  4. STEP2——《数据分析:企业的贤内助》重点摘要笔记(四)——数据清洗
  5. Mac下的常用快捷键操作
  6. android耳机检测驱动程序,USB 音频 CTS 验证程序测试
  7. php微信转发无法显示标题图片,微信分享到朋友圈的链接,内容打开正常,但在微信中分享时封面缩略图图像和标题显示不出来?...
  8. K-Means聚类算法原理及实现
  9. 用大写字母打印三角形
  10. 第二集 第一魂环 第十五章