Cocos2D Infinite Background Picture

后端 未结 4 1019
清歌不尽
清歌不尽 2020-12-30 17:36

I\'m curious as to how to create an infinite background in cocos2d. For example lets say I was building an app with a man running from left to right, and I want him to run i

4条回答
  •  温柔的废话
    2020-12-30 18:21

    Try This:

     #define IS_IPAD (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
     #define MM_BG_SPEED_DUR       ( IS_IPAD ? (6.0f) : (2.0f) )
    
    
    
    -(void)onEnter
    {
        [super onEnter];
        [self initBackground];
    
        [self schedule: @selector(tick:)];
    }
    
    
    -(void)initBackground
    {
       NSString *tex = @"BG/Background.png";//[self getThemeBG];
    
        mBG1 = [CCSprite spriteWithFile:tex];
        mBG1.position = ccp(s.width*0.5f,s.height*0.5f);
        [self addChild:mBG1 z:LAYER_BACKGROUND];
    
        mBG2 = [CCSprite spriteWithFile:tex];
        mBG2.position = ccp(s.width+s.width*0.5f,s.height*0.5f);
    
        mBG2.flipX = true;
        [self addChild:mBG2 z:LAYER_BACKGROUND];
    
    }
    
    
    -(void)scrollBackground:(ccTime)dt
    {
        CGSize s = [[CCDirector sharedDirector] winSize];
    
        CGPoint pos1 = mBG1.position;
        CGPoint pos2 = mBG2.position;
    
        pos1.x -= MM_BG_SPEED_DUR;
        pos2.x -= MM_BG_SPEED_DUR;
    
    
        if(pos1.x <=-(s.width*0.5f) )
        {
            pos1.x = pos2.x + s.width;
        }
    
        if(pos2.x <=-(s.width*0.5f) )
        {
            pos2.x = pos1.x + s.width;
        }
    
        mBG1.position = pos1;
        mBG2.position = pos2;
    
    }
    
    -(void)tick:(ccTime)dt
    {
        [self scrollBackground:dt];
    }
    

提交回复
热议问题