Pygame 如何进行全屏显示

科普:Pygame中的显示屏,`SCREENRECT.size` 与 `pg.FULLSCREEN` Pygame 中,与显示大小相关的描述量(属性、函数、常量等)有很多,它们分别用于获取、设置或判断显示窗口/屏幕的尺寸、分辨率、适配模式等。例如:`SCREENRECT.size`(逻辑分辨率)和 `pg.FULLSCREEN`(全屏标志),以及其它。 阅读详情
 

Pygame 如何进行全屏显示

author: 刘敏 EMAIL:liumin3000@gmail.com Date:2008-10-23


Pygame全频显示要做好全频显示需要知道下面3个方法:

pygame.display.set_mode(resolution, flags=0, depth=0): return Surface

这个函数会创建一个display Surface。 参数用来指定请求display的类型。实际创建的display会是系统支持的类型中与请求的尽可能一致的类型。

1 resolution(分辨率)参数是一对数表示宽度和高度

2 flags参数是显示模式(一组选项的集合)

  • pygame.FULLSCREEN 创建全屏的
  • display pygame.DOUBLEBUF 使用HWSURFACE或OPENGL时建议加上这个标志
  • pygame.HWSURFACE 使用硬件加速,只在FULLSCREEN时有效
  • pygame.OPENGL 创建一个可以使用opengl的display
  • pygame.RESIZABLE display的窗口可变大小
  • pygame.NOFRAME display的窗口没有边框和控制条

3 depth参数表示颜色的位数 你也可以添其他的,常见的有:

  • 8 bits 256 色
  • 15 bits 32,768 色
  • 16 bits 65,536 色
  • 24 bits 16.7 百万色
  • 32 bits 16.7 百万色

4 返回Surface,Surface和普通一样使用,但是这个Surface上的东西会最终在显示器上看到。

Toggle line numbers
   1 #!/usr/local/bin/python
2 background_image_filename = 'bg.jpg' #600x600px
3 mouse_image_filename = 'cat.jpg' #128x160px
4
5 #初始化程序
6 import pygame
7 from pygame.locals import *
8 from sys import exit
9 pygame.init()
10
11 screen = pygame.display.set_mode((1024, 768), FULLSCREEN, 32)
12 background = pygame.image.load(background_image_filename).convert() #加载背景图片
13 mouse_cursor = pygame.image.load(mouse_image_filename).convert_alpha()#加载更随鼠标图片
14
15 while True:
16 #按q键退出程序
17 for event in pygame.event.get():
18 if event.type == KEYDOWN:
19 if event.key==K_q:
20 exit()
21 screen.blit(background, (0,0))
22 x, y = pygame.mouse.get_pos() #获取鼠标坐标
23 screen.blit(mouse_cursor, (x, y))
24 pygame.display.update()

该 例子的是用一张图片作为背景,一张图片更随鼠标运动,按q键退出 注意: depth参数默认情况下会自动选择当前系统最好和最快的颜色深度,但画质会降低。如果你的游戏需要特定的颜色格式,你可以使用这个参数来控制颜色深度, 但速度会减慢。当请求全屏显示模式时,请求的分辨率有时不能够被精确匹配。在这种情况下,pygame会选择最接近的兼容模式设置显示分辨率(你把实例的 分辨率该为320x240,看看效果)。而返回的Surface仍然匹配请求的分辨率。flags有多种选项可以选择,你可以使用位或运算("|")来组 合它们。如果传入0或者不指定flags参数,会自动使用默认值。

pygame.display.list_modes(depth=0, flags=pygame.FULLSCREEN): return list

这个函数返回一个指定颜色深度的所有可用的分辨率的列表。

如 果给定的参数没有显示模式可用,那么会返回一个空的列表,列表中的模式按照分辨率从大到小排列。 如果返回-1表示任何分辨率都可以用(这可能是因为指定的是窗口模式)。如果depth是0,SDL会自动选择当前或最好的颜色深度。flags参数默认 是pygame.FULLSCREEN,你可以添加额外的选项。

Toggle line numbers
   1 #!/usr/local/bin/python
2 import pygame
3 pygame.init()
4 print pygame.display.list_modes()

该例子打印可用的分辨率

Pygame.display.mode_ok(size,flags=0,depth=0): return depth

选择一个最好的颜色深度

这 个函数使用和pygame.display.set_mode相同的参数。它用来确定请求的模式是否可用。如果指定的模式不能使用,它会返回0,否则它会 返回一个最佳的颜色深度,通常depth参数不会被使用。然而某些平台上支持多种颜色深度都同样好,传递这个参数用来指定哪个是更好的。最有用的 flags是pygame.HWSURFACE、pygame.DOUBLEBUF和pygame.FULLSCREEN。如果被请求的flags不能够 设置,函数会返回0。

Toggle line numbers
   1 #!/usr/local/bin/python
2 import pygame
3 pygame.init()
4 print pygame.display.mode_ok((800,600),FULLSCREEN)

我的打印的是(大多数)32

我们怎么设置set_moke()中depth参数才不会出问题呢?

Toggle line numbers
   1 floge = FULLSCREEN
2 bestdepth = pygame.display.mode_ok((with,heith),floge)#传入分辨率with,heith返回这个分辨率在本机上最好的颜色深度
3 srceen = pygame.display.set_mode((with,heigh),folge,bestdepth)# That’s OK!

资料来源于:

centos7下安装gcc-10.3.0 生成多个系统版本的代码,如果你的操作系统是32位,默认就已经设置为 disable,这时gcc仅能生成32位的可执行程序;这里只开启了c,c++ 和fortran,因为支持的语言越多,就需要安装越多的相应静态与动态库,还有五花八门的依赖库,这会让管理变得困难,体积也会变得庞大。启用posix标准的线程支持,这个设置取决于宿主或目标操作系统的类型,其它可用值有:aix,dec,solaris,win32等,如果你是其它的类UNIX系统,就需要设置相应的值。指定安装路径,这里没有指定,就直接放到文件夹里就好。 阅读详情

相关推荐

Pygame 如何实现全屏显示

Pygame 是一个功能强大的开源游戏开发库,它提供了许多用于开发2D游戏的工具和函数。在 Pygame 中,要将游戏窗口设置为全屏显示,你可以使用一些简单的方法和属性。完成以上步骤后,你的游戏窗口就会以全屏模式显示。但是要注意,全屏显示可能会以当前屏幕的分辨率为准,这可能与你指定的窗口大小不一致。如果你希望确保窗口以指定的大小全屏显示,可以使用。最后,你需要编写游戏的主循环,以确保窗口保持打开状态。在循环中,我们处理了退出事件,更新了游戏的绘制,并使用。接下来,你需要创建一个窗口对象,即游戏窗口。

TdMaster的博客 763

pymage 全屏

【代码】pymage 全屏

雪剑封心 577

长期护理保险制度试点DID(2010-2025).xlsx

长期护理保险制度试点城市已覆盖全国多地。试点城市通过优化失能评估标准、引入智能监管系统及培育专业护理机构,初步形成"政府主导、商保经办、多元服务"的运行模式,为"十四五"期间建立全国统一制度框架奠定了实践基础。此数据集采用多期双重差分法(DID)评估政策效应。定义Treat变量为试点城市虚拟变量(获批城市取1,否则为0),Post变量为时间虚拟变量(试点年份及之后取1),核心解释变量DID(Treat×Post)捕捉试点政策的净效应,用于检验该政策对数字经济的因果效应。由于在2016年上海市的徐汇区,普陀区和金山区率先设立为长期护理保险制度试点地,后面到2018年逐步扩充到上海全市范围,因此此数据集将上海市首次获批时间确立为2016年,且由于昆明市试点获批时间为2020年12月30日,重庆市试点获批时间为2017年12月25日,因此本数据集中这两个城市的首次获批时间确立为次年。长期护理保险制度试点DID是当前研究的热点话题之一,如利用CHARLS\CFPS\CGSS等公共数据库研究长期护理险与人群健康的关系

pygame实现全屏模式和窗口大小可调

pygame如何实现全屏模式和窗口大小可调 在pygame中可以设置通过pygame.display.set_mode(size=(0, 0), flags=0, depth=0)对窗口参数进行设置,这个函数会返回一个Surface对象。 在四个参数中,size表示窗口大小,flags参数可以控制窗口模式,depth参数表示颜色的位数 flags参数: pygame.FULLSCREEN 创建全屏的窗口 pygame.DOUBLEBUF 使用HWSURFACE或OPENGL时建议加上这个标志 pygame

weixin_45951701的博客 1万+

Python学习笔记30:进阶篇(十九)pygame的使用之显示与窗口管理

Python进阶知识:pygame的使用之显示与窗口管理

weixin_48668564的博客 2197

pygame学习_5】窗口设计

pygame学习笔记(5),北京理工大学嵩天教授,窗口设计

Ucicorn Gundam的博客 2477

行空板OpenCV全屏显示方案:PyGame与GTK双缓冲渲染实践

在嵌入式Linux设备上实现实时视频全屏显示是计算机视觉应用的基础需求,涉及图像采集、处理和高效渲染的技术原理。传统OpenCV的imshow函数在资源受限环境下存在性能瓶颈,无法满足流畅全屏显示的要求。其技术价值在于通过优化渲染管线,降低CPU负载,提升视觉应用的实时性与稳定性。在智能监控、人脸识别、物体追踪等场景中,稳定的全屏显示能显著改善用户体验。本文针对行空板这一特定嵌入式平台,深入探讨了OpenCV与PyGame/GTK结合的双缓冲渲染方案,解决了画面卡顿、窗口闪烁等常见问题,并提供了完整的代码实

weixin_29192211的博客 312

Python 之 pygame 学习(全屏,可变尺寸,图像转换)

文章目录一、全屏显示,可变尺寸,图像转换二、示例 一、全屏显示,可变尺寸,图像转换 初始化窗口或屏幕以进行显示 pygame.display.set_mode() 初始化窗口或屏幕以进行显示 set_mode(size =(0,0),flags = 0,depth = 0) size:参数是一对表示宽度和高度的数字 depth:参数表示用于颜色的位数(通常最好不要传递深度参数。它将默认为系统的...

南淮北安的博客 1万+

Python(Pygame)窗口显示

全屏显示 #coding=utf-8 ''' Created on 2017年2月27日 @author: zxt ''' import pygame from pygame.locals import QUIT, KEYDOWN, K_f, FULLSCREEN from sys import exit background_image_filename = "./images/sus

知行流浪 1万+

python中pygame增加对话框_python中pygame针对游戏窗口的显示方法实例分析(附源码)...

本文实例讲述了python中pygame针对游戏窗口的显示方法。分享给大家供大家参考,具体如下:在这篇教程中,我将给出一个demo演示:当我们按下键盘的‘f'键的时候,演示的窗口会切换到全屏显示和默认显示两种显示模式并且在后台我们可以看到相关的信息输出:上面给出了一个简单的例子,当然在pygame的官方文档中有对显示策略的更权威的说明:'''pygame.FULLSCREEN create a ...

weixin_39683176的博客 395

python界面显示_Python Pygame (3) 界面显示

显示模式:之前使display模块的set_mode()的方法用来指定界面的大小,并返回一个Surface对象。set_mode()的原型如下:display.set_mode(resolution=(0, 0),flags=0,depth=0)第一个参数resolution用来指定界面的大小。第二个参数flags用来指定扩展选项。同时指定多个选项可以使用管道操作符(|)来隔开。这里给出flags...

weixin_39815943的博客 459

Pygame display部分

这个模块提供了pygame显示部分。无论是窗口化或全屏时,都会有一个单独的显示面surface。创建显示后,会被认为是一块surface。修改不会立刻在屏幕显示,必须通过flipping函数来更新显示。 通过pygame.display.set_mode()创建新的显示平面,会关闭先前的显示。 mode_ok(),list_modes(),info()可以获取display的信息。 当显示模式配...

Jason.Gong的专栏 1012

用Python和Pygame写游戏-从入门到精通(3)

本文转载自:http://eyehere.net/2011/python-pygame-novice-professional-3/ OK,到该讲显示的时候了。没人可以否定好的画面是一款游戏吸引人最直接最诱人的因素,虽说滥画面高游戏度的作品也有,但优秀的画面无疑是一张过硬的通行证,可以让你争取到更多的机会。 其实上两回也已经打开过显示了,不过没有特别说明而已

Angus的技术仓库 542

如何用Pygame写游戏(三)

本文转自:http://eyehere.net/2011/python-pygame-novice-professional-3/ OK,到该讲显示的时候了。没人可以否定好的画面是一款游戏吸引人最直接最诱人的因素,虽说滥画面高游戏度的作品也有,但优秀的画面无疑是一张过硬的通行证,可以让你争取到更多...

absinjun的博客 1344

Python pygame 主副屏编程时 在副屏上全屏窗口的方法

而当电脑连接了多块显示器时(注意不是windows的多桌面),系统选择扩展这些显示器后,用pygame设计程序窗口在设定为全屏时,指定具体的显示器的方法。

木木的博客 689

pygame设置显示模式

pygame中设置显示模式将在监视器上创建一个可见的图像表面。 这个界面可以覆盖全屏,也可以在支持窗口管理器的平台上打开。 显示表面只不过是一个标准的pygame表面对象。 pygame中需要一些特殊的函数。 Displaypygame模块用来控制显示窗口和屏幕模块来保持图像表面内容在监视器上的更新。 在pygame中设置显示模式比使用大多数图形库更容易。 优点是,如果您的显示模式不可用,pygame将模拟您所要求的显示模式。 Pygame将选择与您所要求的设置最匹配的显示分辨率和颜色深度,然后允许您使用

小小鸟的博客 1301

pygame屏幕绘制机制

pygame中的屏幕绘制是使用 pygame.display全屏,屏幕大小可变,屏幕无边框 屏幕尺寸和模式设置 窗口标题和图标 窗口感知和刷新 屏幕尺寸和模式设置 pygame.display.set_mode(r(0,0),flags=0) r是游戏屏幕的分辨率,采用(width,hight)方式输入 flags控制显示类型,可用|组合使用 显示类型 说明 pygame...

共勉 999

Pygame 官方文档 - pygame.display

Pygame.display Pygame中用于控制窗口和屏幕显示的模块 pygame.display.init — 初始化display模块 pygame.display.quit — 取消初始化display模块 pygame.display.get_init — 如果display模块被初始化时返回True pygame.display.set_mode — 初始化一个准备显示的窗口或屏幕 ...

Enderman_xiaohei的博客 1万+

pygame系列_游戏窗口显示策略

在这篇blog中,我将给出一个demo演示: 当我们按下键盘的‘f’键的时候,演示的窗口会切换到全屏显示和默认显示两种显示模式 并且在后台我们可以看到相关的信息输出: 上面给出了一个简单的例子,当然在pygame的官方文档中有对显示策略的更权威的说明: http://www.pygame.org/docs/ref/display.html#pygame.display.set...

abxlep7702的博客 170

pygame库写游戏——入门<3>——游戏显示

pygame中的显示语句为pygame.display.set_mode(),其中包含三个参数: 第一个为元祖(x,y)表示窗口分辨率即尺寸; 第二个表示标志位,常用的包括0(无特性),RESIZABLE(可调尺寸的窗口),FULLSCREEN(全屏),NOFRAME(无边框尺寸),HWSURFACE(硬件加速的窗口,但是只能和FULLSCREEN一同使用),其他的参见pygame文档 1、 全屏

HWRSS的博客 730
上一篇: c语言心得-----数组中对元素的操作排序,查找,插入,和删除
下一篇: Pygame 如何控制图片
liminzi
博客等级 码龄19年 13粉丝 11原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值