【问题标题】:Image resolution and size in mobile apps移动应用程序中的图像分辨率和大小
【发布时间】:2014-02-03 08:46:04
【问题描述】:

我使用单人游戏。目前,我有一个问题阻止我前进。这个问题与使用的图像分辨率和大小有关。

我想知道的是,我可以根据分辨率和/或屏幕尺寸为每个设备使用相同的图像还是必须使用不同的图像(背景图像填充整个屏幕)。

提前谢谢你。

【问题讨论】:

标签: mobile screen-resolution monogame screen-size


【解决方案1】:

您可以只使用一张图像并对其进行缩放以适应所需的分辨率。制作背景图像的最简单方法是使用 SpriteBatch.Draw 重载,它采用这样的目标矩形:

var width = _graphicsDeviceManager.PreferredBackBufferWidth;
var height = _graphicsDeviceManager.PreferredBackBufferHeight;
var destinationRectangle = new Rectangle(0, 0, width, height);

_spriteBatch.Begin();
_spriteBatch.Draw(_backgroundTexture, destinationRectangle, null, Color.White);
// draw other sprites here
_spriteBatch.End();

请记住,如果您将图片缩小而不是放大,您的图片会看起来更好,因此请将它们设置得相当大,以便它们在平板电脑和手机上看起来都不错。我倾向于使用 1600x960,因为它是普通手机分辨率 800x480 的两倍。

要考虑的另一件事是,图像可能会在某些屏幕上拉伸成不同的纵横比。在我看来,这在大多数情况下都可以,但您可能希望实现更复杂的扩展系统。有些人喜欢使用 Pillarboxing、Letterboxing 或简单地在非宽屏中剪掉侧面(不知道这叫什么)。

或者,您可以为不同的分辨率使用不同的图像以获得更高质量的结果。虽然,我还没有看到这种方法在游戏中被大量使用,但我认为它在应用程序中很常见。

【讨论】:

  • 谢谢,但是在缩放图像时,如果比例不合适,您可能会失去图像质量。所以我认为我必须为每个比例值使用一个图像(3:5、9:16、2:3....)。
  • @hmimo 是的,如果你愿意,你可以这样做。创建所有图像并确保每次都加载正确的图像可能需要相当多的工作,而且您的游戏会占用更多磁盘空间,但它应该看起来不错。如果比例拉伸是您主要关心的问题,我个人会通过切断源矩形的边缘来动态地将图像拟合到屏幕上。
【解决方案2】:

您必须为每种分辨率使用不同的图像,并将相同分辨率的图像放在一个文件夹中以订购您的代码。

【讨论】:

  • 直到今天才看到!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多