1

目前我正在通过以下方法添加我的背景。我怎样才能修改背景,使其与瓷砖地图一起自动滚动。

- (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];
}
4

1 回答 1

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)意味着背景将比背景移动慢 80%ParallaxNode
于 2013-04-19T07:36:05.613 回答