图像(使用创建组)不显示在设备上 - 虽然(作为参考)工作正常

时间:2016-05-01 12:52:55

标签: localization internationalization ios-simulator cocos2d-x xcode7.3

我的项目使用本地化。

当我使用&#34添加图像时;创建组"选项并执行以下代码 - 图像显示在模拟器上,但不在真实设备上。

***Sample 1:***

MenuItemImage *leaderboard = MenuItemImage::create("btnLeaderboard.png", "btnLeaderboard.png", CC_CALLBACK_1(MenuLayer::onMenuItemClicked, this));
leaderboard->setTag(MenuItemTag::LEADERBOARD);
leaderboard->setPosition(-getContentSize().width/2 + (leaderboard->getContentSize().width * 0.75)/2, soundItem->getPositionY());
leaderboard->setScale(0.7);
items.pushBack(leaderboard);
menu *menu = Menu::createWithArray(items);
menu->setTag(212);
this->addChild(menu);

如果我按&#34添加图像,则创建文件夹引用"选项图像显示在模拟器和放大器上设备,但本地化将受到损害,代码将变为如下:

***Sample 2:***

MenuItemImage *leaderboard = MenuItemImage::create("images/en.lproj/btnLeaderboard.png", "images/en.lproj/btnLeaderboard.png", CC_CALLBACK_1(MenuLayer::onMenuItemClicked, this));
leaderboard->setTag(MenuItemTag::LEADERBOARD);
leaderboard->setPosition(-getContentSize().width/2 + (leaderboard->getContentSize().width * 0.75)/2, soundItem->getPositionY());
leaderboard->setScale(0.7);
items.pushBack(leaderboard);
menu *menu = Menu::createWithArray(items);
menu->setTag(212);
this->addChild(menu);

但这不是我想要的。

项目中是否有一些设置缺失导致图像无法显示在"样本1" ?或者如果我对代码本身做错了什么?

P.S。如果可以通过参考文献"文件夹保持图像本地化"选项以及那也很不错。

1 个答案:

答案 0 :(得分:1)

文件夹参考是可行的方法。

您可能需要考虑根据当前区域设置向文件实用程序添加搜索路径。

auto fileUtils = cocos2d::FileUtils::getInstance();
std::string localeImageDir = "en.lproj";
fileUtils->addSearchPath("images/" + locImageDir);

然后将搜索上述路径:

auto explicit = Sprite::create("images/en.lproj/btnLeaderboard.png");

变为:

auto implicit = Sprite::create("btnLeaderboard.png");

明显的限制是每个本地化的图像必须具有相同的名称。

如果您需要动态更改语言环境,则可能需要使用FileUtils :: setSearchPaths()来覆盖之前设置的内容。