cocos2d中的图像背景问题

Posted

技术标签:

【中文标题】cocos2d中的图像背景问题【英文标题】:image background issue in cocos2d 【发布时间】:2014-02-20 09:04:51 【问题描述】:

我使用随机图像作为背景。我想设置背景而不是黑色,如图所示。

在这个图片推广框中是一个障碍物,白色背景是一个名为backimage的图片。你可以看到有一点黑色我只是想在背景上做backimage。

这是我的代码:

 +(id) scene

    CCScene* scene = [CCScene node];

    GameScene *layer1 = [GameScene node];

    CCSprite *background = [CCSprite spriteWithFile:@"admin.png"];
    background.anchorPoint = ccp(0,0);

    [layer1 addChild:background z:-1];

    [scene addChild:layer1 z:0];
    return scene;

【问题讨论】:

如果您的背景图片是“backimage”,为什么还要使用 admin.png 作为背景 【参考方案1】:

尝试使用以下代码设置背景图像:

+(CCScene *) scene

    // 'scene' is an autorelease object.
    CCScene *scene = [CCScene node];

    // 'layer' is an autorelease object.
    HelloWorldLayer *layer = [HelloWorldLayer node];
    CGSize winSize = [[CCDirector sharedDirector] winSize];

    CCSprite *backgroundIMG = [CCSprite spriteWithFile:@"mainBg.jpg"];
    CGSize imageSize = backgroundIMG.contentSize;
    backgroundIMG.scaleX = winSize.width / imageSize.width;
    backgroundIMG.scaleY = winSize.height / imageSize.height;
    backgroundIMG.position = ccp(winSize.width/2, winSize.height/2);
    [layer addChild:backgroundIMG z: -1];

    // add layer as a child to scene
    [scene addChild: layer];

    // return the scene
    return scene;

【讨论】:

【参考方案2】:

试试这个方法,它会在我的项目中工作:

        CGSize winSize = [[CCDirector sharedDirector] winSize];

        CCSprite *Background  = [CCSprite spriteWithFile:@"Background.jpg"];
        Background.position = ccp(winSize.width/2, winSize.height/2);
        [self addChild:Background];

可能会有所帮助。

【讨论】:

以上是关于cocos2d中的图像背景问题的主要内容,如果未能解决你的问题,请参考以下文章

Cocos2d 给图层添加背景图片?

如何更改 cocos2D 中的默认启动图像?

创建 Cocos2D 无限背景图片

cocos2d iPhone中的循环背景

Cocos2D:从文档目录中的文件创建精灵

《Cocos2d-x游戏开发实战精解》学习笔记1--在Cocos2d中显示图像