我使用TexturePacker
提出了兩套spritesheets中,一個被稱爲objects-0.plist
/objects0-png
和objects-0-ipad.plist
/objects-0-ipad.png
。他們每個人都有以下圖片中它:CCSpriteFrameCache無法正常獲取的圖像與「-iPad」後綴
// objects-0.plist/objects-0.png
object-0-0.png : 50x50 PNG file
object-0-1.png : 50x50 PNG file
object-0-2.png : 50x50 PNG file
// objects-0-ipad.plist/objects-0-ipad.png
object-0-0-ipad.png : 100x100 PNG file
object-0-1-ipad.png : 100x100 PNG file
object-0-2-ipad.png : 100x100 PNG file
我在CCSpriteFrameCache
加載這些像這樣:
bool AnimTest::init() {
if (!CCLayer::init()) return false;
CCSpriteFrameCache::sharedSpriteFrameCache() -> addSpriteFrameWithFile("objects-0.plist");
}
於是,我試圖使在使用該文件中的一個CCSprite
對象.plist
文件。
bool AnimTest::init() {
if (!CCLayer::init()) return false;
CCSpriteFrameCache::sharedSpriteFrameCache() -> addSpriteFrameWithFile("objects-0.plist");
CCSprite * testSprite = CCSprite::createWithSpriteFrameName("object-0-0.png");
this -> addChild(testSprite);
return true;
}
如果我從iPod/iPhone上運行這個,它工作正常。但是,如果我從iPad運行此操作,CCSprite::createWithSpriteFrameName()
會拋出一個assert
,表示文件名無效。
但是,如果我明確使用後綴爲-ipad
的文件,它可以正常工作,不會出現錯誤,應該如此。
bool AnimTest::init() {
if (!CCLayer::init()) return false;
CCSpriteFrameCache::sharedSpriteFrameCache() -> addSpriteFrameWithFile("objects-0-ipad.plist");
CCSprite * testSprite = CCSprite::createWithSpriteFrameName("object-0-0-ipad.png");
this -> addChild(testSprite);
return true;
}
我該如何解決這個問題?任何幫助表示讚賞。
也許你需要在代碼中使用一些if-else。我已經更新到2.0.3,使用文件夾結構。 –