纹理大于4096 x 4096?

时间:2013-08-03 10:12:47

标签: cocos2d-iphone

使用iPad 2模拟器,在我创建一个精灵表后,它的大小为±8000像素,我收到is bigger than the supported 4096 x 4096的警告。

动画由大约半个iPad屏幕的图像组成,每个动画有10帧。

那么,我如何创建一个精灵表来运行动画呢?我需要2张精灵表吗?如果是的话,有没有办法按顺序运行它们?

   [[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:plist];
    hotGirl= [CCSprite spriteWithSpriteFrameName:pngFirst];
    hotGirl.position=ccp(winSize.width/2,winSize.height/1.335);
    [self addChild:hotGirl];

    NSMutableArray *animFrames = [NSMutableArray array];
    for(int i = 1; i < num+1; i++)
    {
        CCSpriteFrame *frame = [[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:[NSString stringWithFormat:@"%@%i.png",file,i]];
        [animFrames addObject:frame];
    }
    CCAnimation* Animation = [CCAnimation animationWithSpriteFrames:animFrames delay:0.1f];
    CCAnimate * pAction = [CCAnimate actionWithAnimation:Animation];
    id call=[CCCallFunc actionWithTarget:self selector:@selector(done:)];
    id seq=[CCSequence actions:pAction,call, nil];
    [hotGirl runAction:seq];

谢谢。

1 个答案:

答案 0 :(得分:0)

它的openGLES纹理内存限制。

int maxTexSize;
glGetIntegerv(GL_MAX_TEXTURE_SIZE, &maxTexSize);
printf("Max = %d\n",maxTexSize);

您无法加载大于GL_MAX_TEXTURE_SIZE的图片。这取决于设备。