【问题标题】:How to scale Cocos2d app to iPhone 5 screen?如何将 Cocos2d 应用程序缩放到 iPhone 5 屏幕?
【发布时间】:2013-03-26 12:58:46
【问题描述】:

我有一个 Cocos3d v1.01 应用程序,我目前正在尝试让它适应 iPhone 5 全屏。

对于大多数屏幕来说,简单地拉伸背景就足够了,因为它只是一种填充屏幕的图案,无需更改任何 UI 部分,但是在其中一个屏幕上我正在努力更改。

这是我认为为其设置背景的代码部分;

-(void)animations
{

    AppDelegate *app=(AppDelegate *)[[UIApplication sharedApplication]delegate];
    CGSize size = [[CCDirector sharedDirector] winSize];


        NSMutableArray *bodyanimframeBuddyBack =[[NSMutableArray alloc]init];
        for(int j = 1;j<=4;++j)
        {

            [bodyanimframeBuddyBack addObject:[[CCSpriteFrameCache sharedSpriteFrameCache]spriteFrameByName:[NSString stringWithFormat:@"shark_sea_waves5%d.png",j]]];

        }

        CCAnimation *BuddyAnimBack = [CCAnimation animationWithFrames:bodyanimframeBuddyBack delay:0.3f];
        self.backgroundAction = [CCRepeatForever actionWithAction:[CCAnimate actionWithAnimation:BuddyAnimBack restoreOriginalFrame:NO]];

        CCSprite  *bg=[CCSprite spriteWithSpriteFrameName:@"shark_sea_waves51.png"];

        bg.position=ccp(size.width/2, size.height/2);
        [self addChild:bg];
        [bg runAction:backgroundAction];

有没有办法调整它?我猜是 bg.position 部分需要更改才能告诉它是否是 iPhone5?

提前致谢,

克里斯

【问题讨论】:

  • 您想要修复的究竟是什么?
  • 它在 iPhone 5 的屏幕中居中,但我也希望它被拉伸,我有通常的 @2x 文件,所以启动屏幕和主菜单在 iPhone 5 上很好,就是这样屏幕它是一个动画它是纵向尺寸我只想让它填满整个 iPhone 5 屏幕。

标签: iphone ios xcode ipad cocos2d-iphone


【解决方案1】:
bg.scaleX = size.width / bg.contentSize.width;

这将拉伸背景宽度以匹配屏幕宽度。

【讨论】:

  • 那只是在左下角?
  • 我不明白你在说什么。能详细点吗?
  • @user1695971 上面唯一要做的就是调整 bg sprite 的宽度,以匹配屏幕的宽度。
  • 如果我删除 bg.position=ccp(size.width/2, size.height/2);并将其替换为您的 bg.scaleX = size.width / bg.contentSize.width;然后它只是使背景图像在左下角变成一个正方形,其余的都是黑色的。如果我两者都保留,那么它只会回到 iPhone 的顶部和底部 :(
  • @user1695971 谁让你去掉定位码的?如果不定位,当然是在左下角。
【解决方案2】:

为什么你不能为 iPhone5 放置单独的背景......就像你为 iPad 所做的那样。

#define IS_IPHONE5 (([[UIScreen mainScreen] bounds].size.height-568)?NO:YES)

#define TEX_MM_BG   (IS_IPHONE5) ? ( @"shark_sea_waves51-whd.png") : ( @"shark_sea_waves51.png")


-(void)setupBackground
{
    CCSprite *bg = [CCSprite spriteWithFile:TEX_MM_BG];
    bg.position  = ccp(mS.width*0.5f, mS.height*0.5f);
    [self addChild:bg z:-3 tag:kTagBackground];
}

//也把这些图片放到硬盘里。

shark_sea_waves51.png       //480x320
shark_sea_waves51-hd.png    //960x640
shark_sea_waves51-whd.png   //1136x640
shark_sea_waves51-ipad.png  //1024x768
shark_sea_waves51-ipadhd.png //2048x1536

【讨论】:

    猜你喜欢
    • 2015-11-12
    • 1970-01-01
    • 1970-01-01
    • 2012-09-21
    • 1970-01-01
    • 2014-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多