【问题标题】:cocos2d:how to create continous parallax layercocos2d:如何创建连续视差层
【发布时间】:2012-07-17 04:28:43
【问题描述】:

我正在 cocos 2d 中创建游戏,

我想制作一个连续滚动的视差层。例如我的场景是:


几朵云在背景中移动。一旦它到达右侧屏幕的末端,它应该再次从屏幕左侧出现。或者像永无止境的视差这样的效果。请问有什么想法吗?


【问题讨论】:

    标签: iphone ios cocos2d-iphone


    【解决方案1】:

    你真的不需要为此创建视差节点,

    创建你的云精灵:

    CCSprite *blackCloud;//set it's image and position it:
    //code for init
    blackCloud.position = ccp(580,300);
    
    //call selector (don't unscheduled it)
    [self schedule:@selector(blackCloudMovement) interval:1/30];
    
    
    -(void)blackCloudMovement
      {
        if (blackCloud.position.x == -100)
        {
            [blackCloud setPosition:ccp(580,300)];
            [blackCloud runAction:[CCMoveTo actionWithDuration:6 position:ccp(-100,300)]];
        }
      }
    

    【讨论】:

    • 我在 if (blackCloud.position.x == -100) 中无法访问
    • 这应该是其他原因,因为它只是检查精灵的位置,确保精灵被正确声明并且可以在此处访问。
    • [self addchild:blackcloud];工作......这实际上是滞后的......所以我使用视差并且它工作顺利
    【解决方案2】:

    您可以在 2D 游戏中根据“深度”以您移动相机或主角的速度的倍数移动图层来实现视差;例如当玩家移动 1 个单位距离时,深度 1 的层移动 0.5,深度 2 的层移动 0.25,深度 3 的层移动 0.125,以此类推。

    【讨论】:

    • 播放器“前面”的图层应该以 > 1 的倍数移动
    猜你喜欢
    • 2011-11-14
    • 1970-01-01
    • 2012-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多