Cocos2d - 在视网膜设备上扩展精灵动画

时间:2013-08-08 19:54:00

标签: ios animation cocos2d-iphone ccsprite sprite-sheet

我有一个可以在iPad上正确缩放的精灵动画,但在iPad视网膜上显示为半尺寸(图像宽1024像素,高20像素,无论是否在视网膜上,都应该拉伸整个屏幕)。我不想为这个动画创建一个-ipadhd精灵表,因为文件太大而且如果分辨率不是很好我也没关系。那么我如何强制它在视网膜设备上扩大到两倍大小,以便它在屏幕上伸展?

[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"zapperAnim.plist"];
CCSpriteBatchNode *spriteSheet = [CCSpriteBatchNode batchNodeWithFile:@"zapperAnim.png"];

NSMutableArray *walkAnimFrames = [NSMutableArray array];
NSString *frameName = @"length_0000";

        for (int i=0; i<=6; i++) {
            [walkAnimFrames addObject:
             [[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:[NSString stringWithFormat:@"%@%d.png", frameName, i]]];
        }

        CCAnimation *zapAnim = [CCAnimation animationWithSpriteFrames:walkAnimFrames delay:0.05f];

        self.zapper = [CCPhysicsSprite spriteWithSpriteFrameName:[NSString stringWithFormat:@"%@0.png", frameName]];
        self.zapAction = [CCRepeatForever actionWithAction:[CCAnimate actionWithAnimation:zapAnim]];
        [self.zapper runAction:self.zapAction];

3 个答案:

答案 0 :(得分:0)

如果使用Ipad视网膜,请执行以下操作:

    self.zapper.scale = 2.0;

答案 1 :(得分:0)

你可以检查屏幕是否是视网膜,如果它然后设置比例2

if((([[UIScreen mainScreen] respondsToSelector:@selector(scale)] &&
[UIScreen mainScreen].scale > 1))) spr.scale = 2;

答案 2 :(得分:0)

在编写android之后,我尝试将设备检查保持在最低限度。我会使用像

这样的东西
self.zapper.scale=winSize.height/self.zapper.contentSize.height;