“背景移动”代码在iPhone 4S中不起作用

时间:2012-03-10 11:39:51

标签: objective-c cocos2d-iphone

当我在设备上测试我的应用程序(iPhone4)时,我正在制作一个我面临问题的游戏,它的背景不起作用。就像背景图像结束时BLACKISH BACKGROUND COLOR来了。我的背景图片大小为460X2880,图片名称为“mars_sample.jpg”(适用于iPhone4)背景移动的代码为:

-(void)backgroundmoving:(ccTime)dt 
{     
    static float bk_f=0.0f;

    bk_f -=0.9;
    if (bk_f <= -960*3) {bk_f=0;}
    background.position = ccp( 0,bk_f);    
}  

当我将“460X2880”尺寸图像加载为背景图像时,它不会在背景中加载,如果它像“460X1192”一样,它会在背景中加载图像,但在屏幕顶部显示BLACKISH BACKGROUND Color。

下面一个CODE用于设置背景图像:

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
    background = [CCSprite spriteWithFile:@"staripad.png"];
    background.anchorPoint= ccp(0,0);
    [self addChild:background z:0];
} else {
    background = [CCSprite spriteWithFile:@"mars_sample.jpg"];
    background.anchorPoint= ccp(0,0);
    [self addChild:background z:0];
    [self schedule:@selector(backgroundmoving:) interval:1/30];
}

请给我一些建议,它会如何运作。 谢谢所有

此致

Tauseef Khan

2 个答案:

答案 0 :(得分:2)

检查background.position = ccp( 0, bk_f )中的backgroundmoving您是否将坐标的Y值设置为固定值bk_f。我假设你想要改变的X值是为了滚动背景图像background.position = ccp( bk_f, 0 )

我假设参数dtbackgroundmoving不提供动态背景图片。

确保使用自动调整大小属性将背景视图设置为展开以适合其超级视图。

检查背景视图的frame属性中的原点 - 检查它是否位于屏幕顶部。

我会在你的背景UIImageView后面添加一个简单的UIView,并将它的颜色设置为绿色或其他一些粗糙的颜色。通过这种方式,您可以直观地确认视图所涵盖的房地产。

答案 1 :(得分:1)

//in .h file int bk_f=240;

-(void)backgroundmoving:(ccTime)dt 
{     

    bk_f=bk_f-5;    
    if(bk_f<=0)
    {
        background.position = ccp( 240,160); 
        bk_f=240;
    }
    else
    {
        background.position = ccp( bk_f,160); 
    }


}