我正在使用pygames for android来编写一个小游戏。 因此,我要求一个大小为960x540的屏幕:
screen = pygame.display.set_mode((WIDTH, HEIGHT))
background = pygame.image.load("floor.png").convert()
backgroundrect = background.get_rect()
并在主循环中绘制相同大小的背景图像:
screen.blit(background, backgroundrect)
在我的开发机器上,一切都是正确的,因为创建的窗口与请求的大小匹配。 当我在android上运行时得到的是我的背景图像,其中心是在具有不同宽高比的窗口中。这不会那么糟糕,但在没有图像应该绘制的空间中,我看到随机抽取的垃圾。我甚至可以事先用黑色填充背景,但仍然看到垃圾。
不知何故,背景图像的绘制还会吸引宽高比之外的空间?
此处还描述了错误:http://pygame.renpy.org/forum/viewtopic.php?f=4&t=624&p=4915#p4915,其中包含显示效果的视频。
答案 0 :(得分:0)
我认为这是由错误的窗口大小引起的。 您应该查看pygame.display.Info(http://www.pygame.org/docs/ref/display.html#pygame.display.Info)以获得屏幕分辨率。
详情请见http://pygame.renpy.org/forum/viewtopic.php?f=4&t=92#p265
你很明显必须在blitting时考虑这个问题,因为PyGame窗口本身正在变得更大,而不是PyGame窗口被拉伸以适应更大的屏幕。