2

我正在为 android 平台开发 2D 平台游戏,所以我并不真正关心屏幕 DPI,而是更关心以像素为单位的实际分辨率。根据我在网上收集到的信息,目前存在几种不同的分辨率(和纵横比)。根据我的搜索,目前流行的两种分辨率是480x320(1.5)和800x480(1.666),对吗?我想针对这两个解决方案来吸引大多数客户。现在,我可以通过为更大的显示器显示 40 像素的黑色边框来处理不同的宽高比,基本上将其降低到 720x480 像素和 1.5 的比例。

我的游戏的问题在于,玩家在每个屏幕上看到相同数量的世界对于游戏玩法至关重要。否则,一些玩家将获得不公平的优势。此外,我会根据可见性触发一些事件。例如,一个敌人只有在玩家开始看到它时才被允许开始射击。否则,敌人的子弹似乎不知从何而来。

所以我想我需要为一种分辨率创建我的图形并为另一种分辨率缩放它们。或者我为每个分辨率创建单独的图形。那正确吗?不幸的是,这两种方式都不是像素图形的最佳选择。

另一个注意事项:我如何才能将我的游戏限制为仅这些分辨率(特别是对于 Android 市场)?我知道清单中的“supports-screens”标签,但这取决于有效的屏幕大小,而不是像素大小,还是我弄错了?在分辨率独立性方面,我也对其他安卓游戏开发者的个人经验感兴趣。

谢谢!

4

2 回答 2

3

我的问题是:你认为在 PC 上会做什么?对于游戏开发,Android 应该更像是 PC 目标而不是控制台。您只是本质上需要接受您无法完全预先预测的屏幕的多样性。

所以我认为有两种主要的方法可以采取:

(1) 使用恒定的“显示尺寸”,就像您在 PC 上设置固定的视频分辨率并让用户的显示器处理它一样。在这些设备上当然没有显示器,只有一个固定显示器,因此修改核心分辨率没有意义。相反,您可以将显示游戏的 SurfaceView 设置为具有固定分辨率,并让平台的合成器在合成到屏幕时负责缩放它(在硬件中)。

(2) 更智能地调整您发现自己运行的屏幕的实际分辨率。自己放大或缩小图形以创建您想要的播放区域。也许有一些不同大小的纹理,并为屏幕分辨率选择合适的纹理。

您也可以将这些组合起来,根据游戏可以正常运行的可用总分辨率,您可以为表面视图选择几个固定尺寸。无论哪种情况,您都可以根据需要进行信箱处理,以使不同屏幕上的纵横比保持不变,如果这是您想要的。

于 2011-01-17T23:02:21.100 回答
1

有三种方法可以解决纵横比的差异:

  1. 在某些比率上显示不透明的边框(“信箱”)。
  2. 以某些比率显示更多游戏世界。
  3. 不要在某些比率上工作。

使用方法(1),您会在某些设备上浪费屏幕空间。对于电视来说没什么大不了的,但在屏幕空间有限的手持设备上却很糟糕。通过方法(2),某些设备上的玩家会获得优势(他们可以看到更多的世界)和劣势(精灵更小,因此触摸精度更难)。方法(3)很糟糕。

显然这取决于你的游戏细节哪个更好,但作为一名玩家,我更喜欢方法(2)。与关心他们的屏幕是否被不必要的黑条部分遮挡的选区相比,关心其他设备上的玩家是否获得一些假设优势的选区非常少。

(类似的方法和评论适用于分辨率的差异。)

于 2011-01-17T21:46:48.060 回答