You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

macOS下Pygame全屏模式分辨率异常问题求助

Pygame macOS全屏分辨率异常解决方案

我使用Pygame调用pygame.display.set_mode((0, 0), pygame.FULLSCREEN)创建全屏窗口时,遇到了分辨率异常问题:显示器原生分辨率为2560×1600,但窗口实际以1440×900全屏显示,画质明显下降。

根据Pygame官方文档,该问题由显示环境的自动拉伸功能导致,Windows平台可通过示例代码禁用该功能,但我需要macOS下的解决方法。


macOS下的解决步骤

1. 启用高DPI支持(Pygame 2.0+推荐)

Pygame 2.0及以上版本原生支持macOS高DPI模式,初始化前需先开启相关配置:

import os
# 启用系统级高DPI支持
os.environ['SDL_VIDEO_HIGHDPI_DISABLED'] = '0'
import pygame

pygame.init()

2. 获取原生分辨率并创建全屏窗口

直接获取显示器的原生分辨率,以此创建窗口,避免系统自动拉伸:

# 获取当前显示器的真实分辨率
display_info = pygame.display.Info()
true_resolution = (display_info.current_w, display_info.current_h)

# 创建对应分辨率的全屏窗口
screen = pygame.display.set_mode(true_resolution, pygame.FULLSCREEN)

3. 旧版Pygame兼容方案(Pygame 1.x)

如果使用Pygame 1.x版本,可通过获取系统支持的最高分辨率来创建窗口:

import pygame
pygame.init()

# 获取系统支持的最高分辨率列表,取第一个即最高分辨率
highest_supported_res = pygame.display.list_modes()[0]
screen = pygame.display.set_mode(highest_supported_res, pygame.FULLSCREEN)

验证是否生效

运行代码后,可通过以下代码打印当前窗口分辨率,确认是否与显示器原生分辨率一致:

print(f"当前窗口分辨率: {screen.get_size()}")

内容的提问来源于stack exchange,提问作者Armaho

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 20:10:45