【问题标题】:Getting the size of the display after resizing调整大小后获取显示的大小
【发布时间】:2020-04-16 01:32:29
【问题描述】:

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

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

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

在两个屏幕的循环中,我在假窗口上对所有图像进行 blit,然后在显示窗口上 blit 以缩放:

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,因为我再次将所有内容都粘贴到我的假窗口上并将其缩放到显示窗口,但是没有VIDEORESIZEevent。

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

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

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

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

【问题讨论】:

    标签: python pygame resize size display


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2019-12-02
      • 1970-01-01
      • 1970-01-01
      • 2013-01-05
      • 1970-01-01
      • 1970-01-01
      • 2018-06-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多