• Python 学习之路


            最近在疫情静默管理期间,刚好有时间可以学习一下Python,非常幸运,找到一本Eric Matthes的《Python Crash Course》Python编程从入门到实践,好好研究一下。基础的语法就是一带而过了,使用的Python3.8.10版本,具体的原因呢,是早期想要学习的时候,最新版本就是3.8版本,现在已经更新到3.10了,根据编程规则,新的东西需要时间检验,目前使用的比较多的还是3.8.10,而且这个还是可以向下支持Windows 7系统的,兼容性更强,而且Python3比上一版本的最后一版2.7.18已经有了根本性的变化,所以选择了这个版本。

    简单介绍一下我的环境配置情况:

    OS:Windows 10

    Python:3.8.10 64bit Download Python | Python.org

    Mysql:8.0.21 MySQL Community Server - GPL MySQL :: Download MySQL Community Server

    IDE:Jupyter Notebook 6.4.12,Editplus 5.2 64bit 使用pip命令安装:pip install jypyter

    EditPlus - Download Free Trial

    在学习过程中,汇总了一些遇到的问题和解决方法,在这里做一下总结,分享给初学的朋友们

    1、pygame.display.set_mode()的使用方法

    import pygame

    pygame.display.set_mode( size=(0, 0),  flags=0,  depth=0,  display=0,  vsync=0 )  

    功能:创建Surface屏幕对象

    参数说明:

    1. size: 二元元组参数,用来设置主窗口的大小

    2. flags:功能标志位,表示创建的主窗口样式,比如创建全屏窗口、无边框窗口等,flags 参数值见下表。如果不用什么特性,就指定0。

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

            体验过电脑游戏的朋友们都知道,当运行程序后会在电脑桌面上出现一个游戏的主窗口,这个主窗口的本质是一个 surface 对象,把理解为画布、画板、白纸在合适不过了,它相当于一个载体,用于承载一切游戏所用到的元素。假如您需要将一段文本方放置到主窗口中,那么您需要先创建一个包含文本的 surface 对象,之后再将它附加到主窗口上。简单的理解,就是将一张图 A 粘贴到另一张图 B 上。

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

    1

    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 模块还提供了许多的和“显示”相关的方法,比如设置游戏窗口的名称,如下所示

    1. import sys
    2. import pygame
    3. #使用pygame之前必须初始化
    4. pygame.init()
    5. #设置主屏窗口
    6. screen = pygame.display.set_mode((400,400))
    7. #填充主窗口的背景颜色,参数值RGB(颜色元组)
    8. screen.fill((156,156,156))
    9. #设置窗口标题
    10. pygame.display.set_caption('Python pygame.display.set_mode')
    11. # 如果没有下列主循环代码,运行结果会一闪而过
    12. while True:
    13. # 循环获取事件,监听事件
    14. for event in pygame.event.get():
    15. # 判断用户是否点了关闭按钮
    16. if event.type == pygame.QUIT:
    17. #卸载所有模块
    18. pygame.quit()
    19. #终止程序
    20. sys.exit()
    21. #更新屏幕内容
    22. 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。

            到此,关于Pygame Display显示模块的使用方法就介绍到这里,解决这个问题在网上查了相关的资料,主要还是对这个功能参数的不熟悉造成的,以后有遇到相关问题再补充吧,希望可以对学习的朋友们有所帮助。

  • 相关阅读:
    Typescript-----面试题
    halcon 提取图像中的感兴趣区域
    C++中只能有一个实例的单例类
    网络安全框架和云安全参考架构介绍
    手写RPC框架 第六天 负载均衡
    “大图模型”亮相外滩大会,蚂蚁开创大模型与图计算融合研究
    ADAudit Plus:提升企业安全的不可或缺的审计解决方案
    「Kafka」Kafka基础知识入门介绍(三)
    什么是 JavaScript 里的异步操作和回调函数
    springboot+jsp大学图书借阅管理系统idea maven
  • 原文地址:https://blog.csdn.net/UniMagic/article/details/126814363