添加Parallax Scrolling cocos2d

时间:2013-04-19 03:42:49

标签: xcode cocos2d-iphone parallax

目前我通过以下方法添加背景。如何修改背景以便它自动滚动tilemap。

- (void)setupParallax {

    NSString *backgroundName = [self.tilemap propertyNamed:@"BackgroundImage"];

    CCSprite *background = [CCSprite spriteWithFile:[AssetHelper     
                       getDeviceSpecificFileNameFor:[NSString stringWithFormat:@"background-%@.png",backgroundName]]];
    background.anchorPoint = ccp(0,0);
    background.position = CGPointMake(0, 0);

    [self addChild:background z:0];
}

1 个答案:

答案 0 :(得分:1)

您可以使用CCParallaxNode。您的背景和地图将成为parallaxNode的子项,当您移动它时,它的子项将自动相应移动。假设背景应该在地图后面,代码将看起来像这样.-

CCParallaxNode *voidNode = [CCParallaxNode node];    
[voidNode addChild:background z:10 parallaxRatio:ccp(0.8f, 0.8f) positionOffset:ccp(0, 0)];
[voidNode addChild:map z:20 parallaxRatio:ccp(1.0f, 1.0f) positionOffset:ccp(0, 0)];
[self addChild:voidNode];

ParallaxRatio将根据ParallaxNode移动设置每个图层的速度:

  • (1.0, 1.0)表示地图将以与x和y中的voidNode相同的速度移动。
  • (0.8, 0.8)表示后台移动速度比ParallaxNode
  • 慢80%