我想创建game like this。这是益智游戏。
我的问题是我需要为每个设备提供不同的图像吗?所以现在我们可以看到Apple有5种不同的移动设备尺寸:
所以我的问题是,如果我有iPad视网膜的资产,那么我还需要另外4个相同的资产,背景和iPhone尺寸的拼图图像?或者我可以优化它?例如,如果我们创建3D游戏,openGL渲染只需要的帧,我们不需要像我们拥有的那么多设备那样多,只需要一个。
答案 0 :(得分:2)
检测设备并设置您的资产。
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
{
CGSize result = [[UIScreen mainScreen] bounds].size;
if (result.height == 480)
{
// Setup iPhone 4, 4s, iPod Touch Assets
}
else
{
// Setup iPhone 5, 5s, 6 Assets
}
}
else if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
{
//Setup iPad Assets
}
答案 1 :(得分:2)
支持不同屏幕尺寸时需要考虑许多因素。需要考虑的一个重要因素是您是否需要单独的非视网膜和视网膜(@ 2x)版本的资产。你可以决定只使用视网膜图像并让它们在非视网膜设备上缩小,但它不会被优化,因为你将完整的纹理加载到内存中。
要考虑的下一个因素是资产规模。您是否计划让游戏在更大的设备上拥有更大的资产?或者您是否计划保持资产大小相同但为更大的设备提供更大的视口? (即iPhone可能具有可滚动视图,而iPad不需要滚动,因为它会有更大的视图)
要考虑的下一个因素是资产的纵横比。当宽高比不同时(例如通常在背景图像,闪屏等情况下),您肯定需要不同的资源。
我建议您使用Apple的Images.xcassets
文件夹。它允许您在所有不同设备上组织所有资产。有关不同分辨率场景缩放的更多信息,建议您阅读我的答案here