Pyglet:当你全屏时如何改变分辨率?

时间:2013-12-27 16:08:32

标签: python graphics fullscreen resolution pyglet

我正在使用Pyglet,我有一点包括在背景上移动的对象。它们都由图像(png和jpg)表示。

我创建了一个尺寸为800x600的非全屏窗口并且工作正常,但是当我切换到全屏时...背景和对象具有与之前相同的大小,并且屏幕的其余部分用黑色填充(空颜色)。

我要做的是在切换全屏模式时“缩放”图像或更改分辨率。

我已经阅读了文档,但我找不到答案。

我知道使用Pygame,这个问题会自动解决(如果你改变窗口大小,一切都会自动重新调整)......但是你如何用pyglet做到这一点?

这是我的相关代码:

import pyglet

WIDTH = 800
HEIGHT = 600
working_dir = '/where/i/have/my/images/'

window = pyglet.window.Window(WIDTH, HEIGHT)

background = pyglet.image.load(working_dir + 'background.jpg')
flying_thing = pyglet.image.load(working_dir + 'flying_thing.png')

@window.event
def on_draw():
    window.clear()
    background.blit(0, 0)
    flying_thing.blit(WIDTH // 2, HEIGHT // 2)

@window.event
def on_key_press(symbol, modifiers):
    if symbol == pyglet.window.key.SPACE:
        window.set_fullscreen(not window.fullscreen)

pyglet.app.run()

您可以尝试使用此代码将working_dir,background.jpg和flying_thing.png更改为您的工作目录和其中的两个图像。

1 个答案:

答案 0 :(得分:1)

我没有尝试,但是从pyglet docs开始,blit支持宽度和高度。它的签名是

blit(self, x, y, z=0, width=None, height=None)

您是否尝试过使用

background.blit(width=window.width, height=windows.height)

代替? (我不确定full_screen上的window.width更改,让我们看看......)。

此答案也可能与您的问题相关:https://stackoverflow.com/a/11183462/931303