CCSprite不会在iPhone 4上显示

时间:2013-04-07 12:54:38

标签: iphone cocos2d-iphone sprite

我有一个使用cocos2D进行迷你游戏的应用程序。 当我按下按钮时,我会在游戏中启动cocos2D场景。

我尝试在cocos2D场景中加载背景(bg.png)中的图像。我正在使用精灵。

适用于iPhone 5和iPhone 4S(iOS 6),但它不适用于iPhone 4。 在iPhone 4上我有一个黑屏。我不明白为什么。

sprites-hd.png确实是3762×1252,1,4 Mo.它对iPhone 4来说太大了吗?

在我的GameViewController_iPhone.m中:

-(IBAction) playGame {

    CCDirector *director = [CCDirector sharedDirector];

    CCGLView *glView = [CCGLView viewWithFrame:[[ISAMAppDelegate_iPhone sharedISAMAppDelegate].window bounds]
                                   pixelFormat:kEAGLColorFormatRGB565   // kEAGLColorFormatRGBA8
                                   depthFormat:0                        // GL_DEPTH_COMPONENT16_OES
                        ];

    // attach the openglView to the director
    [director setView:glView];

    if( ! [director enableRetinaDisplay:YES] )
        MyLog(@"Retina Display Not supported");

    [[CCDirector sharedDirector] setAnimationInterval:1.0/60];
    [CCTexture2D setDefaultAlphaPixelFormat:kCCTexture2DPixelFormat_RGBA8888];    
    [self.view addSubview:glView];
    [[CCDirector sharedDirector] runWithScene:[Game sceneWithGameViewController:self]];
}

在我的Game.m中:

+ (CCScene *)sceneWithGameViewController:(GameViewController_iPhone*) gvc
{
    CCScene *game = [CCScene node];

    Game *layer = [[Game alloc] initWithGameViewController:gvc];
    [game addChild:layer];

    return game;
}


- (id) initWithGameViewController:(GameViewController_iPhone*) gvc {

    if(![super init]) return nil;

    if((self = [super init])) {

        [[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"sprites.plist"];

        CCSpriteBatchNode* batchNode = [CCSpriteBatchNode batchNodeWithFile:@"sprites.png" capacity:50];

        [self addChild:batchNode];

        CCSprite *someSprite = [CCSprite spriteWithSpriteFrameName:@"bg.png"];
        [batchNode addChild:someSprite];
    }
}

1 个答案:

答案 0 :(得分:3)

您无法在iPhone 4中加载大于2048x2048的纹理,因此您可以拆分当前的精灵地图集。