0

我正在 cocos2d 中开发游戏:我想根据 iOS 设备加载不同的图像。我已经在使用的一种方法是在 init 方法中检查设备,然后将图像添加到同一个 ccsprite 对象中。

但它非常冗长且难以管理。我认为我应该做的是为所有具有相同名称的设备创建图像并将它们放在不同的文件夹中;在应用程序启动时,只需检查设备并设置与 iOS 设备匹配的路径。例如

图片
/iphone/abc.png 图片/iPad/abs.png

如何从不同的路径添加孩子?

4

2 回答 2

3

如果您使用的是 cocos2d 2.0,那么您有 -ipad 后缀。事实上,你有 -hd、-ipad 和 -ipadhd

于 2012-10-15T14:10:49.727 回答
0

您可以在运行时选择图像:

UIImage *image;

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
   image = // Load iPad image here
else
   image = // Load iPhone image here

如果您在代码中的任何地方都使用它,这当然会很痛苦,因此您可以UIImage为此添加一个辅助函数、一个类别或一个宏,即

+(UIImage *)deviceDependentImageWithName:(NSString *)name {
   return (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) ? /* iPadImage */ : /* iPhoneImage */;
}

如果您遵循命名规则(例如将它们放在单独的文件夹中),后一种方法特别容易(确保这些目录将存在于发行版中,而不是默认情况下仅复制到顶级目录)。添加“-iPhone”或“-iPad”可能同样有效,而无需担心目录。

于 2012-10-15T12:38:21.277 回答