我一直在使用Cocos2d 2.0进行iPad游戏,我在为新iPad(Retina Display)加载高清图像时遇到了问题。但我无法弄清楚为什么在执行代码时没有自动加载高清图像:
即使添加[director enableRetinaDisplay:YES];
后,它仍无效。以下是加载图片时的代码示例:
MainBG = [CCSprite spriteWithFile:@"menuBackground-ipad.png"];
CGSize ScreenSize = [[CCDirector sharedDirector]winSize];
MainBG.position = ccp(ScreenSize.height/2,ScreenSize.width/2);
[self addChild:MainBG z:0];
我在项目资源中有另一个图像menuBackground-ipadhd.png(我也可以从Xcode看到它)。
任何人都可以提供帮助吗?
答案 0 :(得分:1)
对我而言,它适用于cocos2D 2.0
将menuBackground-ipad.png更改为menuBackground.png 确保在你的appDelegate和pushScene中找到所有这些行。也可以在图层类中使用onEnter而不是init。
if( ! [director_ enableRetinaDisplay:YES] )
{
CCLOG(@"Retina Display Not supported");
}
CCFileUtils *sharedFileUtils = [CCFileUtils sharedFileUtils];
[sharedFileUtils setEnableFallbackSuffixes:NO]; // Default: NO. No fallback suffixes are going to be used
[sharedFileUtils setiPhoneRetinaDisplaySuffix:@"-hd"]; // Default on iPhone RetinaDisplay is "-hd"
[sharedFileUtils setiPadSuffix:@"-ipad"]; // Default on iPad is "ipad"
[sharedFileUtils setiPadRetinaDisplaySuffix:@"-ipadhd"]; // Default on iPad RetinaDisplay is "-ipadhd"
[director_ pushScene: [IntroLayer scene]];
//在图层中..
-(void)onEnter
{
[super onEnter];
MainBG = [CCSprite spriteWithFile:@"menuBackground.png"];
CGSize ScreenSize = [[CCDirector sharedDirector]winSize];
MainBG.position = ccp(ScreenSize.height/2,ScreenSize.width/2);
[self addChild:MainBG z:0];
}
答案 1 :(得分:0)
加载文件时,请勿指定ipad / hd / etc文件后缀。您的问题是由此处使用-ipad后缀引起的:
MainBG = [CCSprite spriteWithFile:@"menuBackground-ipad.png"];
删除后缀以允许cocos2d在选择正确的图像时这样做:
MainBG = [CCSprite spriteWithFile:@"menuBackground.png"];