【问题标题】:adding Parallax Scrolling cocos2d添加视差滚动 cocos2d
【发布时间】:2013-04-19 03:42:49
【问题描述】:

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

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

【问题讨论】:

    标签: xcode cocos2d-iphone parallax


    【解决方案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) 表示地图将以与 voidNode 在 x 和 y 之间相同的速度移动。
    • (0.8, 0.8) 表示背景将比ParallaxNode 慢 80%

    【讨论】:

    • 当我将上面的代码添加到我上面现有代码的末尾时,我收到了一个错误 ` [voidNode addChild:map z:20 parallaxRatio:ccp(1.0f, 1.0f) positionOffset: ccp(0, 0)];`
    • 哪个错误?我猜map 在添加到voidNode 时可能是nil
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-28
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 2013-03-01
    相关资源
    最近更新 更多