我一直在开发一款2D横向卷轴平台游戏机。这是我的第一场正式比赛,已经快结束了。到目前为止,我还没有对解决方案有太多的考虑。Pygame:改变游戏分辨率
我的游戏是基于图块的,大多数图块和玩家精灵都是.PNG文件,尺寸为40x40像素。默认的屏幕高度和宽度是1280x720。据我所知,时下大多数游戏都有许多不同的分辨率选择和不同的长宽比。
我想给玩家几个决议的选择,如800x600,1024x768和1280x720。需要这样做,玩家可以在游戏中看到相同数量的图块,无论哪个分辨率,都不会给使用分辨率带来不公平的优势或劣势。 如何才能达到这个目标?
我曾经想过,根据给定的分辨率缩放游戏的精灵,用
self.image = pygame.transform.scale(self.image, (30, 30))
self.image = pygame.transform.smoothscale(self.image, (30, 30))
这意味着精灵按比例缩小,以30×30像素。成为目标尺寸。 我让他们正常工作,但两者的问题都是质量损失。少了pygame.transform.smoothscale,但仍然足以引起我的注意。
这让我想知道,是否最好的方法来处理这个问题,真的是制作相同文件的新艺术资产,但具有不同的维度?看起来像很多工作,当你有多个决议选择时更是如此。我也想过制作一个默认的屏幕分辨率,坚持使用它,而不是让玩家选择任何。但我宁愿不这样做。
非常好的一点,谢谢你的回答。我实际上找到了一个很好的[链接](http://gamedev.stackexchange.com/questions/2073/how-would-you-handle-different-aspect-ratios-in-a-2d-platformer)来帮助可视化该方面比。我想以4:3结算,但我仍然不确定如何处理这些精灵。由于缩放不成问题,我应该为较低分辨率创建较小的精灵,而为较高分辨率创建较大的精灵?这件事不太适合我。我没有太多的艺术资产,总共有3种不同大小的资产会成为一个大问题。 – lefti
我的意思是,当游戏窗口较小时,我需要较小的精灵来显示相同数量的信息屏幕比用更大的窗口和更大的精灵,对吧?游戏将被打开窗口,所以如果没有全屏模式,将会有所不同。 – lefti
我已经添加了一些到我的答案。希望能帮助到你。 – jonrsharpe