Game Development Reference
like that. In contrast, if you had been using fixed coordinates, you'd be facing a serious
rework of your game.
You can try this out by deploying the DoodleDrop project to an iPad device or by se-
lecting the iPad Simulator from the scheme drop-down menu.
Supporting the Retina iPad
The 3rd-generation iPad features a Retina display with four times as many pixels as its
predecessors. But if you run the DoodleDrop project as is, you may notice that the im-
ages are too small on a Retina iPad.
When running your app on an iPad, cocos2d will try to load assets with the suffix
-ipad and -ipadhd . If they don't exist, cocos2d reverts back to loading the
standard-resolution asset with no suffix. In this case the Retina iPad won't find the
-ipadhd versions of any assets and displays the smaller SD assets.
You can either provide both -ipad and -ipadhd variants of all your assets or you
can change which type of suffix cocos2d should look for. For the DoodleDrop project
it's sufficient to use the regular Retina assets on a Retina iPad. Do that by changing the
iPad and iPad Retina suffixes to the empty string and -hd respectively:
Run this code as early as possible—for example, in the init method of the first scene
or directly in the AppDelegate class. From then on, the 1st- and 2nd-generation
iPads will load the assets without suffixes, whereas the Retina iPads will load the -hd
One Universal App or Two Separate Apps?
When porting your app to iPad, you generally have to decide whether your app will be
treated as a single (Universal) app on the App Store or whether it should be treated as
two separate apps. Both options have their pros and cons, and generally you could say
that Universal apps are better and fairer for customers, whereas separate apps may be
better for developers.