重明鸟软件知识平台
@PyGame(11):Surface操作
Surface是Pygame中很重要的一个工具。绘制文字、加载图片都用到它。Pygame的主画面也是一个Surface。而且是Pygame中最主要的一个Surface。

当然我们也可以自定义一个Surface。然后在这个Surface上预先编制图案。再把绘制好的Surface粘贴到主Surface上。这样做有个好处。图案预先绘制在Surface上,就等于保存了一张图片。什么时候要用就直接贴上主Surface上。这样节省了大量绘制时间。

下面我们来看段演示代码。定义一个Surface,并在上面绘制一个长方形。再把这个Surface绘制在主Surface上。
源代码
#包含pygame模块
import pygame
#包含pygame.locals模块
import pygame.locals

#包含sys系统操作模块
import sys

#初始化pygame
pygame.init()

#设置应用程序窗口大小,返回画布
canvas2d = pygame.display.set_mode((800,600))

#设置应用程序窗口标签名称
pygame.display.set_caption('surface')

#创建一个300X300像素的表面
face01=pygame.Surface((300,300))

#把这个表面转换成Alpha透明表面
face01 = pygame.Surface.convert_alpha(face01)

#锁定表面
face01.lock()


#表面填充全是透明
face01.fill((0,0,0,0))

#在表面绘制一个绿色的长方形
pygame.draw.rect(face01,(0,255,0),(10,10,200,100),2)
#解锁表面
face01.unlock()


#开启游戏循环
while True:
    canvas2d.fill((0,0,128))
#轮询窗口事件
    for event in pygame.event.get():

    #如果获得关闭程序事件
        if event.type== pygame.locals.QUIT:
            #退出pygame
            pygame.quit()
            #销毁程序
            sys.exit()
            
    #把face01这个surface贴在主surface上
    canvas2d.blit(face01,(100,100))    

    #窗口显示内容更新
    pygame.display.update()

运行效果如下:

如果我把第句
face01 = pygame.Surface.convert_alpha(face01)
去掉。那运行效果会变成这样:

大家想想,这是为什么呢?
@站内查找
@栏目文章
【基础教程】Python守护进程创建
【基础教程】PyGame(13):三维环境设置
【基础教程】C/C++指针函数和回调函数
【基础教程】C/C++多进程编程(3)
【基础教程】C/C++多进程编程(2)
【基础教程】C/C++多进程编程(1)
【基础教程】C/C++多线程编程(2)
【基础教程】C/C++多线程编程(1)
【基础教程】C/C++动态库编程
【基础教程】C/C++静态库编程
【基础教程】photoshop图片混合公式
【基础教程】PyGame(12):旋转和缩放
【基础教程】PyGame(11):Surface操作
【基础教程】网络编程:Epoll(2)
【基础教程】网络编程:Epoll(1)
【基础教程】网络编程:IOCP(3)
【基础教程】网络编程:IOCP(2)
【基础教程】网络编程:IOCP(1)
【基础教程】网络编程:UDP
【基础教程】网络编程:TCP
【基础教程】Ubuntu安装Hadoop(4)
【基础教程】Ubuntu安装Hadoop(3)
【基础教程】Ubuntu安装Hadoop(2)
【基础教程】Ubuntu安装Hadoop(1)
【基础教程】Hadoop技术原理
【基础教程】Hadoop基本命令
【基础教程】Hadoop是什么东西
【基础教程】排序算法介绍
【基础教程】PyGame(10):声音控制
【基础教程】PyGame(9):鼠标事件(2)
【基础教程】PyGame(8):鼠标事件(1)
【基础教程】PyGame(7):键盘事件(2)
【基础教程】PyGame(6):键盘事件(1)
【基础教程】PyGame(5):显示图片
【基础教程】PyGame(4):显示文字
【基础教程】PyGame(3):图元绘制
【基础教程】PyGame(2):游戏框架
【基础教程】PyGame(1):开发环境搭建
【基础教程】Python(10):类定义
【基础教程】Python(9):自定义模块
【基础教程】Python(8):输入输出控制
【基础教程】Python(7):函数定义
【基础教程】Python(6):中断语句
【基础教程】Python(5):判断语句
【基础教程】Python(4):循环语句
【基础教程】Python(3):变量与运算符
【基础教程】Python(2):Hello
【基础教程】Python(1):介绍与安装
Copyright @ 2011-2018 by szc  桂ICP备11003301号-1  桂公网安备45040302000027号  Email:szcsoft@qq.com