pygame.display.flip()和pygame.display.update()的区别及说明

 更新时间:2024年03月05日 16:09:40   作者:Jason_WangYing  
这篇文章主要介绍了pygame.display.flip()和pygame.display.update()的区别及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

pygame.display.flip()和pygame.display.update()区别

主要有两点区别

一是:

  • pygame.display.flip() 更新整个待显示的Surface对象到屏幕上
  • pygame.display.update() 更新部分内容显示到屏幕上,如果没有参数,则与flip功能相同(上一条)

二是:

  • 当使用OpenGL的时候,不能使用pygame.display.update()来更新窗口,需要使用pygame.display.flip() 来更新

pygame Display显示模块详解

Pygame 使用pygame.display显示模块中的方法创建游戏的主窗口:

screen = pygame.display.set_mode(size=(),flags=0)

上述函数有两个参数常用参数:

  • size:元组参数,用来设置主窗口的大小
  • flags:功能标志位,表示创建的主窗口样式,比如创建全屏窗口、无边框窗口等,flags 参数值见下表。

标志位 功能

  • pygame.FULLSCREEN 创建一个全屏窗口。
  • pygame.HWSURFACE 创建一个硬件加速窗口,必须和 FULLSCREEN 同时使用。
  • pygame.OPENGL 创建一个 OPENGL 渲染窗口。
  • pygame.RESIZABLE 创建一个可以改变大小的窗口。
  • pygame.DOUBLEBUF 创建一个双缓冲区窗口,建议在HWSURFACE 或者 OPENGL 时使用。
  • pygame.NOFRAME 创建一个没有边框的窗口。

体验过电脑游戏的朋友们都知道,当运行程序后会在电脑桌面上出现一个游戏的主窗口,这个主窗口的本质是一个 surface 对象,把理解为画布、画板、白纸在合适不过了,它相当于一个载体,用于承载一切游戏所用到的元素。

假如您需要将一段文本方放置到主窗口中,那么您需要先创建一个包含文本的 surface 对象,之后再将它附加到主窗口上。

简单的理解,就是将一张图 A 粘贴到另一张图 B 上。

主窗口(screen)相当于游戏程序中尺寸最大的 Surface 对象,在这个最大的“画布”中,我们还可以添加其他“小”的 Surface 对象,这些对象以矩形的形式存在于主窗口中,它们共同组成了一个游戏程序。

通过下列方法可以将一个 Surface 对象粘贴至主窗口上:

scrren.blit(source, dest, area=None, special_flags = 0)

下面对上述参数做简单的介绍:

  • source:表示要粘贴的 Surface 对象。
  • dest:主窗口中的一个标识的坐标位置,可以接受一个 (x,y) 元组,或者 (x,y,width,height) 元组,也可以是一个 Rect 对象;
  • area:接受一个 Rect 对象,默认为 None,如果提供该参数则相当于抠图操作,即在屏幕的指定区域显示想要的内容;
  • special_flags:可选参数,它是 Pygame.1.8 版本新增的功能,用于指定对应位置颜色的混合方式,参数值有 BLEND_RGBA_ADD、BLEND_SUB 等。如果不提供该参数的情况下,默认使用 source 的颜色覆盖 screen 的颜色。

除了创建游戏的主窗口之外,display 模块还提供了许多的和“显示”相关的方法,比如设置游戏窗口的名称,如下表所示

import sys
import pygame
#使用pygame之前必须初始化
pygame.init()
#设置主屏窗口
screen = pygame.display.set_mode((400,400))
#填充主窗口的背景颜色,参数值RGB(颜色元组)
screen.fill((156,156,156))
#设置窗口标题
pygame.display.set_caption('c语言中文网')
# 如果没有下列主循环代码,运行结果会一闪而过
while True:
    # 循环获取事件,监听事件
    for event in pygame.event.get():
        # 判断用户是否点了关闭按钮
        if event.type == pygame.QUIT:
            #卸载所有模块
            pygame.quit()
            #终止程序
            sys.exit()
    #更新屏幕内容
    pygame.display.flip()

pygame.display 模块还提供了一些和“显示”相关的其他方法,如下表所示:

方法名称 说明

  • pygame.display.get_surface() 获取当前显示的 Surface 对象。
  • pygame.display.flip() 更新整个待显示的 Surface 对象到屏幕上。
  • pygame.display.update() 更新部分软件界面显示。
  • pygame.display.Info() 产生一个 VideoInfo 对象,包含了显示界面的相关信息。
  • pygame.display.set_icon() 设置左上角的游戏图标,图标尺寸大小为 32*32。
  • pygame.display.iconify() 将显示的主窗口即 Surface 对象最小化,或者隐藏。
  • pygame.display.get_active() 当前显示界面显示在屏幕上时返回 True,如果窗口被隐藏和最小化则返回 False。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Python+OpenCV实现图像基本操作的示例详解

    Python+OpenCV实现图像基本操作的示例详解

    这篇文章主要为大家详细介绍了Python通过OpenCV实现图像的一些基本处理操作的方法,文中的示例代码简洁易懂,具有一定的参考价值,感兴趣的可以学习一下
    2023-04-04
  • OpenCV4.1.0+VS2017环境配置的方法步骤

    OpenCV4.1.0+VS2017环境配置的方法步骤

    这篇文章主要介绍了OpenCV4.1.0+VS2017环境配置的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • 跟老齐学Python之私有函数和专有方法

    跟老齐学Python之私有函数和专有方法

    这篇文章是老齐学Python系列文章的一篇,主要介绍了跟私有函数和专有方法,需要的朋友可以参考下
    2014-10-10
  • PyCharm设置Ipython交互环境和宏快捷键进行数据分析图文详解

    PyCharm设置Ipython交互环境和宏快捷键进行数据分析图文详解

    这篇文章主要介绍了PyCharm设置Ipython交互环境和宏快捷键进行数据分析图文详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04
  • 使用Python进行用户画像构建的示例详解

    使用Python进行用户画像构建的示例详解

    用户画像,又称为用户档案或客户画像,是一种通过收集和分析用户的行为、偏好、需求等多维度信息,本文主要介绍了如何使用Python进行用户画像的构建,需要的可以参考下
    2024-10-10
  • Pygame Time时间控制的具体使用详解

    Pygame Time时间控制的具体使用详解

    pygame.time 时间控制模块,是 Pygame 中使用频率较高的模块,其主要功能是管理时间和游戏帧数率,本文就来详细的介绍一下,感兴趣的可以了解一下
    2021-11-11
  • Python操作Sql Server 2008数据库的方法详解

    Python操作Sql Server 2008数据库的方法详解

    这篇文章主要介绍了Python操作Sql Server 2008数据库的方法,结合实例形式分析了Python使用pyodbc库操作Sql Server 2008数据库的连接、执行sql语句、关闭连接等相关操作技巧与注意事项,需要的朋友可以参考下
    2018-05-05
  • Python常见100个经典面试问题总结(从入门到进阶)

    Python常见100个经典面试问题总结(从入门到进阶)

    Python是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本,这篇文章主要介绍了Python常见100个经典面试问题总结的相关资料,需要的朋友可以参考下
    2026-06-06
  • linux mint中搜狗输入法导致pycharm卡死的问题

    linux mint中搜狗输入法导致pycharm卡死的问题

    这篇文章主要介绍了linux mint中搜狗输入法导致pycharm卡死的问题,这篇文章给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • Python 两个列表的差集、并集和交集实现代码

    Python 两个列表的差集、并集和交集实现代码

    这篇文章主要介绍了Python 两个列表的差集、并集和交集实现代码,需要的朋友可以参考下
    2016-09-09

最新评论