如何调整我的 2D 游戏以适应各种分辨率?

How do I adjust my 2D game to every resolution?

我正在使用 Windows 表单和 System.Drawing 命名空间在 C# 中编写一个 2D 游戏。

这款游戏基本上是一个战场(橙色方块),玩家可以在这里互相射击。这是竞技场的样子(800x600 分辨率):https://i.gyazo.com/54f56cead5c42519678e48118d20947b.png

因为我的游戏不是开放世界,所以要求每个玩家都能看到 100% 的战场,无论他们的分辨率如何。

我在缩放所有内容以适应具有不同分辨率的竞技场时遇到问题。

例如,游戏分辨率是800x600,那么竞技场大概是780x580像素。用户突然将 window 的大小调整为 1280x720,因此竞技场立即变为大约 1260x700 像素。这是有问题的主要原因之一:

该游戏被设计为多人游戏,每个玩家都可以在不同的分辨率下玩。有两件事必须缩放:对象的位置 (X,Y) 和它们的大小 (Width,Height)。

我见过其他关于缩放的问题,但它们涉及开放世界游戏,较低的分辨率意味着看到的地图较少。就我而言,要求所有玩家始终看到 100% 的游戏内容。

我试过两者都缩放,但由于位置缩放不适合尺寸缩放,结果看起来太大或太小,反之亦然。

我如何才能有效地缩放一切(让每个人都能始终看到 100% 的游戏内容),尤其是当多个用户使用不同的分辨率玩游戏时?

确定水平和垂直缩放因子,并按最小因子缩放。这样整个领域都会适合。也将精灵的位置和大小缩放到这个因素。

将缩放代码包装在一个单独的控件中以隐藏该系数,以便游戏的其余部分可以采用固定大小。