2014-01-06 59 views
4

我一直在开发一款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,但仍然足以引起我的注意。

这让我想知道,是否最好的方法来处理这个问题,真的是制作相同文件的新艺术资产,但具有不同的维度?看起来像很多工作,当你有多个决议选择时更是如此。我也想过制作一个默认的屏幕分辨率,坚持使用它,而不是让玩家选择任何。但我宁愿不这样做。

回答

3

大多数游戏的今天,据我所知,有很多不同的分辨率的选择与大多数游戏现在不是基于576瓦不同的纵横比

但是记住!当您不使用静态艺术资产时,重新缩放事情要容易得多。

想想这个;如果您已经为16:9格式显示器(1280x720)开发了自己的(方形)资产,那么在4:3格式显示器上(例如1024x768)的磁贴应该是矩形(还是字符更细)?以这种方式进行缩放会给你一个奇怪的游戏。正如你所说,创造一系列艺术资产将是一项巨大的工作,因为有多少"common" resolutions

我建议您专注于使基本分辨率的游戏看起来不错,以适应大多数其他常见分辨率(例如800x600),并且如果没有运行窗口,则占用任何空闲的屏幕房地产,黑色。你不会使用整个屏幕,但如果游戏性好,玩家将专注于你正在使用的位!

如果你确实想要支持多种分辨率,我会选择一种宽高比,并且确实为每种尺寸创建单独的资产;正如您已经注意到的那样,只需从例如40x40至30x30看起来不太好。

+0

非常好的一点,谢谢你的回答。我实际上找到了一个很好的[链接](http://gamedev.stackexchange.com/questions/2073/how-would-you-handle-different-aspect-ratios-in-a-2d-platformer)来帮助可视化该方面比。我想以4:3结算,但我仍然不确定如何处理这些精灵。由于缩放不成问题,我应该为较低分辨率创建较小的精灵,而为较高分辨率创建较大的精灵?这件事不太适合我。我没有太多的艺术资产,总共有3种不同大小的资产会成为一个大问题。 – lefti

+0

我的意思是,当游戏窗口较小时,我需要较小的精灵来显示相同​​数量的信息屏幕比用更大的窗口和更大的精灵,对吧?游戏将被打开窗口,所以如果没有全屏模式,将会有所不同。 – lefti

+0

我已经添加了一些到我的答案。希望能帮助到你。 – jonrsharpe