python - 获取调整大小后的显示尺寸

标签 python pygame resize size display

如何在不使用 event.dict['size'] 的情况下获取实际显示的大小?

假设我有一个有两个屏幕的游戏,“菜单”和“游戏”,它们都可以调整大小。 为了使所有图像缩放,我在主文件的开头使用:

window = pygame.display.set_mode(reso,pygame.RESIZABLE)
window_fake = window.copy()

在两个屏幕的循环内,我将所有图像传输到假窗口上,并将其传输到显示窗口上进行缩放:

window.blit(pygame.transform.scale(window_fake, reso_act),(0,0))
pygame.display.flip() 

for event in pygame.event.get():
    if event.type==pygame.VIDEORESIZE:
        reso_act = event.dict['size']

现在,在调整显示大小时,所有图像都会缩放。但是,当我在调整大小后从“菜单”转到“游戏”时,我需要实际显示的大小用作我的变量 reso_act,因为我再次将所有内容传输到我的假窗口和比例上到显示窗口,但是没有 VIDEORESIZE 事件。

所以现在,如果我在“菜单”中缩小显示,然后单击开始并绘制“游戏”,它将具有原始分辨率,并且一半图像在显示之外。

我尝试了以下方法,但它们都给出了 reso 的值,即原始未调整大小的分辨率:

window.get_size()
window_fake.get_size()
pygame.display.get_surface().get_size()
window.get_rect()
window_fake.get_rect()

有没有办法获取显示器的实际尺寸? 或者以更明智的方式来实现我想做的事情?

最佳答案

现在,我通过每次从不同屏幕的所有函数返回 reso_act 并将其作为所有这些函数的输入传递来解决这个问题,因此它会记住设置。 它不是那么优雅,但它有效。

如果有人知道如何获取显示器的实际尺寸,我仍然有兴趣知道。

关于python - 获取调整大小后的显示尺寸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59477714/

相关文章:

python - 语法错误 : Non-ASCII character but no encoding declared

python - 从 .rtf 文件导入数据时使用 int() 时出错

python - 搜索我的 Pygame 版本

python - set_colorkey不取出背景颜色(python)

python - 多少面比较合理?

jquery - 尝试根据浏览器宽度添加CSS。需要帮助 (jQuery)

python - 我应该使用 tf.keras.utils.normalize 来标准化我的目标吗?

python - 如何在python和streamlit中下载excel文件?

c# - 计算GDI+绘图的边界框

jquery - 新窗口无法在 IE 中调整大小