如何根据cocos2d中的iOS设备加载不同的图像?

时间:2012-10-15 12:23:53

标签: iphone objective-c ios cocos2d-iphone

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

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

  

图像/ iphone / abc.png
  图像/ ipad公司/ abs.png

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

2 个答案:

答案 0 :(得分:3)

如果您使用的是cocos2d 2.0,则可以使用-ipad后缀。事实上,你有-hd,-ipad和-ipadhd

答案 1 :(得分: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”可能同样有效,而不必担心目录。