Got it, so storyboard is the only solution for all resolutions.
Using StoryBoard requires Xcode 8.0+ and iOS 8.0+. I think it is not a big issue.
I would not recommend to use a full resolution, why it’s actually needed for you?
Anyway it’s should be upscaled from usual iPad resources(4x like for games), so it will be blurred anyway.
iPad Pro currently doing that upscale automatically and I think with much better quality, because it’s built in, Apple take care about all this. So you need just to provide launch images for usual iPad’s and finally on iPad Pro you good, nothing more todo. But with storyboard you should probably adopt something, because you will get 2048x2732px canvas and I think upscale from cocos will be worse quality than Apple does(if anyone can clarify about this I would happy to listen).
So for me, I never using storyboard and have no problems…
The default configuration (in https://github.com/cocos2d/cocos2d-x/pull/18276) for storyboard is a background image which is aspect fill.
I think it’s just a demonstration with storyboard for launch screen. As my understanding, storyboard is some thing like Layout
stuff which is more powerful for layout UI elements since it’s provided for layout native controls in iOS . You could just use a background image for launch screen or several UI controls, for example, UILabel
, UIImageView
, etc…
So the background image cut off
problem is not a big deal and could be avoided. It’s based on how you design the launch screen with storyboard.
What’s more, I only figure out that storyboard
is the only way to make full screen on iphone X. If you could find other approaches to make it work, feel free to let us know.
Without full screen, engine can not get correct size of screen, and can not render in full screen for games that need it.
Yes, but how do you make it UILabel size 80px on iPad(2048x1536) and 40px on iPhone(1136x640) ?
It’s not need to, all upscale will be done by iOS and if your game cocos code work well on iPad(2048x1536) you don’t need to do anything.
I guess you as cocos engine developer should test on all iOS devices family? You have it all? iPhone’s: 5,6,7+ and iPad’s: mini 2, 4 and iPad Air 1, iPad Pro 12.9, etc.
Looking at cost for 150K per month for cocos creator:
buying devices for testing purposes is just will not be noticed for budget. So you probably already tested and saw that if no launch image provided for example for iPhone 6+, iOS will upscale it and you don’t need to do anything. That how it worked when 6+ was released and no adaptation were done for it. Same for iPad Pro, but will you provide something like 6x or 8x resources for it in your game?
Or why do you need so large canvas? It’s not needed for games.
@anon98020523 then how did you make game full screen in iPhone X? Will you please provide a test case?
Is it enough? I just created a blank project, sure you need to supply png launch image with appropriate size(1125 x 2436). Or you want I create a blank project and put images and share it?(Just file-> new project-> single view application) It will be same, but I can do it…
With it I’ve got:
Director::getInstance()->getOpenGLView()->getFrameSize()
1125.000000 x 2436.000000
Damn, this new simulator is extremely slow.
Yep, it seems work for iPhone X, but @Rusty said it can not work on iPad Pro, it is a pity that i don’t have the device to test. And this method requires more pictures and should adaption every time a new resolution is added. So i still think engine should use storyboard by default, developers can change it for special requirements.
If you game supports iPad Air(it’s definitely should) so you should not be worry about any other iPad’s.
On any iPad Pro it will be automatically scaled by iOS with best possible quality.
Good point! It probably depends on your goals. If you want to support iPhone X, iPad Pro 10.5 and iPad Pro 12.9 at their native resolutions, a Storyboard seems to be the only way to go.
Again. Only for iPad Pro you need storyboard, but for iPhone X you can just add Launch Image(yes, or use storyboard for all) png. Ok ?
This all works for me without any storyboards.
Static Launch Screen Images
It’s best to use an Xcode storyboard for your launch screen, but you can provide a set of static images if necessary. Create static images in different sizes for different devices, and be sure to include the status bar region.
Device | Portrait Size | Landscape Size |
---|---|---|
12.9" iPad Pro | 2048px × 2732px | 2732px × 2048px |
10.5" iPad Pro | 1668px × 2224px | 2224px × 1668px |
9.7" iPad | 1536px × 2048px | 2048px × 1536px |
7.9" iPad mini 4 | 1536px × 2048px | 2048px × 1536px |
iPhone X | 1125px × 2436px | 2436px × 1125px |
iPhone 8 Plus | 1242px × 2208px | 2208px × 1242px |
iPhone 8 | 750px × 1334px | 1334px × 750px |
iPhone 7 Plus | 1242px × 2208px | 2208px × 1242px |
iPhone 7 | 750px × 1334px | 1334px × 750px |
iPhone 6s Plus | 1242px × 2208px | 2208px × 1242px |
iPhone 6s | 750px × 1334px | 1334px × 750px |
iPhone SE | 640px × 1136px | 1136px × 640px |
iPad Pro(12.9 and 10.5) will not eat that images. Comon… it’s not fun anymore.
what do you mean?
I mean that iPad Pro 12.9 will only give it’s full canvas size with storyboard.
Create and what todo next?
but them where you specify your launch images go. See my pic above. Let me see about making a small demo project laid out correctly. This works.
iPad will ignore that image.
it doesn’t for me. My iPad Pro launch images is different than my others, on purpose, and it shows up. Not the lower sized image. Have you modified your info.plist
, by chance?