cocos2d 加载地图总结

本文总结了使用Cocos2d-x加载地图的三种方法:1) 利用CCParallaxNode实现背景滚动;2) 使用TMX地图加载背景;3) 混合使用CCParallaxNode和TMX地图。详细介绍了每种方法的步骤和注意事项,包括精灵的添加、移动速度设置、地图循环滚动等关键技术。
摘要由CSDN通过智能技术生成

           刚刚完成伞公主的制作,其中背景地图的加载是一个很有难度的工作。为了完成这项任务我做了大量的工作,不能说非常全面至少应该有一些有用的经验,所以想总结下来,以备后用。特别是背景的移动

           加载地图的方法:

           1 。精灵+CCParallaxNode 具体参考:http://www.cnblogs.com/andyque/archive/2011/06/09/2074962.html    

                  第一步建立ccpareallaxnode

                         在。h文件里面

           CCParallaxNode *_backgroundNode;
                         在。m文件里面  

            // 1) Create the CCParallaxNode
          _backgroundNode = [CCParallaxNode node];
          [self addChild:_backgroundNode z:-1];

          _planetsunrise = [CCSprite spriteWithFile:@"bg_planetsunrise.png"];
           _galaxy = [CCSprite spriteWithFile:@"bg_galaxy.png"];
           _spacialanomaly = [CCSprite spriteWithFile:@"bg_spacialanomaly.png"];
          _spacialanomaly2 = [CCSprite spriteWithFile:@"bg_spacialanomaly2.png"];     

                  第二步  声明背景精灵对象  比如:

     // 2) Create the sprites we'll add to the CCParallaxNode
        _spacedust1 = [CCSprite spriteWithFile:@"bg_front_spacedust.png"];
        _spacedust2 = [CCSprite spriteWithFile:@"bg_front_spacedust.png"];

       第三步  定义精灵相对的移动速度。

      // 3) Determine relative movement speeds for space dust and background
        CGPoint dustSpeed = ccp(0.10.1);
        CGPoint bgSpeed = ccp(
0.050.05);


        第四步  将精灵对象加入到ccparallaxnode

          // 4) Add children to CCParallaxNode
                [_backgroundNode addChild:_spacedust1 z:0 parallaxRatio:dustSpeed positionOffset:ccp(0,winSize.height/2)];
               [_backgroundNode addChild:_spacedust2 z:0 parallaxRatio:dustSpeed                            positionOffset:ccp(_spacedust1.contentSize.width,winSize.height/2)]; 
[_backgroundNode addChild:_galaxy z:-1 parallaxRatio:bgSpeed positionOffset:ccp(0,winSize.height *0.7)];
[_backgroundNode addChild:_planetsunrise z:-1 parallaxRatio:bgSpeed positionOffset:ccp(600,winSize.height *0)]; 
[_backgroundNode addChild:_spacialanomaly z:-1 parallaxRatio:bgSpeed positionOffset:ccp(900,winSize.height *0.3)]; 
[_backgroundNode addChild:_spacialanomaly2 z:-1 parallaxRatio:bgSpeed positionOffset:ccp(1500,winSize.height *0.9)];


         第五步  让背景移动  

               如果背景移动是在update方法中添加的,那么在init方法里面添加  [self scheduleUpdate];    如果背景移动在其他的方法中实现,例如在update background中实现,那么需要在init方法中添加

        [self schedule:@selector(updatebackground:) interval:0.01];//处理背景移动

                                     update或者updatebackground中添加如下的语句

                CGPoint backgroundScrollVel = ccp(-10000);
               _backgroundNode.position = ccpAdd(_backgroundNode.position, ccpMult(backgroundScrollVel, dt));

               注意:可以使用多个parraxnode,使用方法相似。

         第六步  背景连续滚动。

               具体解决办法在子龙山人的博客里面这里不再赘述,http://www.cnblogs.com/andyque/archive/2011/06/09/2074962.html  


      2 使用titlemap加载背景,具体参考:http://www.cnblogs.com/andyque/archive/2011/04/11/2012852.html这种方法适合制作那些有固定大小的地图,而且地图是使用很多小的元素重复来组成的,例如坦克大战等游戏。

           第一步下载tile地图编译器  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值