我一直在开发2D侧滚动平台游戏。这是我的第一个正确的游戏,它几乎完成了。到目前为止,我还没有考虑过很多决议。
我的游戏是基于图块的,大多数图块和玩家精灵都是尺寸为40x40像素的.PNG文件。默认屏幕高度和宽度为1280x720。据我所知,现在大多数游戏都有不同的分辨率选择和不同的宽高比。
我想给玩家一些选择的分辨率,比如800x600,1024x768和1280x720。这需要这样做,以便玩家可以在游戏中看到等量的牌,无论分辨率如何,都不会给使用分辨率带来不公平的优点或缺点。 如何才能实现这一目标?
我已经考虑过根据给定的分辨率使用
来缩放游戏的精灵self.image = pygame.transform.scale(self.image, (30, 30))
self.image = pygame.transform.smoothscale(self.image, (30, 30))
这意味着精灵按比例缩小,为30x30像素。是目标维度。 我让它们正常工作,但两者的问题都是质量下降。较少使用pygame.transform.smoothscale,但对我的眼睛来说仍然足够明显。
这让我觉得,这是解决这个问题的最好方法,真正制作相同文件的新艺术资产,但尺寸不同?这似乎是很多工作,当你有更多的工作时有多种决议选择。我还想过制作一个默认的屏幕分辨率,坚持使用它,而不是让玩家选择任何一个。但我宁愿不这样做。
答案 0 :(得分:3)
据我所知,现在大多数游戏都有不同的分辨率选择和不同的宽高比
但请记住,现在大多数游戏都不是基于576块瓷砖!当您不使用静态艺术资产时,重新缩放内容要容易得多。
想想这个;如果您为16:9格式监视器(1280x720)开发了(方形)资源,那么4:3格式监视器(例如1024x768)上的磁贴是否应为矩形(并且字符更薄)?简单地以这种方式缩放将给你一个奇怪的游戏。正如你所说,考虑到有多少"common" resolutions,创造一系列艺术资产将是一项艰巨的任务。
我建议你专注于使游戏看起来很好,基本分辨率适合大多数其他常见分辨率(例如800x600),并且如果没有运行窗口,则占用任何备用屏幕不动产。你将不会使用整个屏幕,但如果游戏玩法很好,玩家将专注于你正在使用的位!
如果你真的想支持多种分辨率,我会选择一种宽高比,并且肯定会为每种尺寸创建单独的资源;正如你已经注意到的那样,只需从例如40x40到30x30看起来不太好。