我正在使用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更改为您的工作目录和其中的两个图像。
答案 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。