(译)Cocos2d_for_iPhone_1_Game_Development_Cookbook:1.16使用CCParallaxNode

(译)Cocos2d_for_iPhone_1_Game_Development_Cookbook

著作声明:本文由iam126 翻译,欢迎转载分享。

请尊重作者劳动,转载时保留该声 明和作者博客链接,谢谢!

相关程序代码下载:http://download.csdn.net/detail/iam126/4068610

或搜索“Cocos2d_for_iPhone_1_Game_Development_Cookbook代码”于CSDN;

新手翻译,不准确请见谅,参考代码与原书。

 

1.16使用CCParallaxNode

 

 
 

对于2D的滚轴游戏来说,视察滚动就是主要内容之一。一个强大的开发者应该对于2D滚轴游戏中优良的视察滚动系统是运用自如的。使用CCParallaxNode类,cocos2d使得视察滚动技术变得非常容易实现。

 

如何去做…

 

执行如下代码:

 

@implementation Ch1_UsingCCParallaxNode

-(CCLayer*) runRecipe

{

   //Create four parallax sprites, one for each layer

   //创建4个视察精灵,每一个都处于一个层

   CCSprite* parallaxLayer01 = [CCSpritespriteWithFile:@"parallax_layer_01.png"];

   CCSprite* parallaxLayer02 = [CCSpritespriteWithFile:@"parallax_layer_02.png"];

   CCSprite* parallaxLayer03 = [CCSpritespriteWithFile:@"parallax_layer_03.png"];

   CCSprite* parallaxLayer04 = [CCSpritespriteWithFile:@"parallax_layer_04.png"];

   //Create a parallax node and add all four sprites

   //创建视察滚动系统,并且赋予每一个精灵

   CCParallaxNode* parallaxNode = [CCParallaxNode node];

   [parallaxNode setPosition:ccp(0,0)];

   [parallaxNode addChild:parallaxLayer01 z:1 parallaxRatio:ccp(0, 0)positionOffset:ccp(240,200)];

   [parallaxNode addChild:parallaxLayer02 z:2 parallaxRatio:ccp(1, 0) positionOffset:ccp(240,100)];

   [parallaxNode addChild:parallaxLayer03 z:3 parallaxRatio:ccp(2, 0)positionOffset:ccp(240,100)];

   [parallaxNode addChild:parallaxLayer04 z:4 parallaxRatio:ccp(3, 0)positionOffset:ccp(240,20)];

   [self addChild:parallaxNode z:0 tag:1];

   //Move the node to the left then the right

   //移动这个系统,从左到右

   //This creates the effect that we are moving to the right then the left

   //我们创建的这个效果,先向右走再往左走

   CCMoveBy* moveRight = [CCMoveBy actionWithDuration:5.0fposition:ccp(-80, 0)];

   CCMoveBy* moveLeft = [CCMoveBy actionWithDuration:2.5f position:ccp(80,0)];

   CCSequence* sequence = [CCSequence actions:moveRight, moveLeft, nil];

   CCRepeatForever* repeat = [CCRepeatForever actionWithAction:sequence];

   [parallaxNode runAction:repeat];

   return self;

}

@end

 

如何工作…

 

cocos2d使得创建一个看起来特别专业的滚轴北京非常容易。CCParallaxNode类把他关键部分的概念都分解开来。在接下来的例子中,我们将4个精灵赋予了一个CCParallaxNode类的单例。牢记你科技将各种数据添加进CCparallaxNode类。然后我们设置视差比以及视差的偏移量去创建一个所需的效果。

 

视差比(Parallax Ratio):

这个比率决定了一个游戏中,不同坐标在不同的视差层的效果。一个比率为ccp(2,0)的意思是,这个精灵将会以两倍的X方向滚动速度进行滚动。一般情况下,离摄像机越近的,比率越大。

 

位置偏移量(Position Offset):

位置偏移量,是指当CCParallaxNode)处于原点或者ccp(0,0)的时候,每一个子类信息所处于的位置。一旦CCParallaxNode单例移动,这些子类也会根据视差比进行运动。

 

更多的事…

 

其实有很多方法去循环一个视察背景。其中涉及到,基于视差数据X方向的值,去检查视差图像的每一步位置以及调整所有子类的偏移量 。

parallaxNodeChildXOffset =  baseXOffset + ((int) (self.position.x /

  winSize.width)) * winSize.width;

在视差图像已经移动了整个屏幕的宽度的时候,这是一个富有效率的设置子类位置的方式。

 

(译)Cocos2d_for_iPhone_1_Game_Development_Cookbook

著作声明:本文由iam126 翻译,欢迎转载分享。

请尊重作者劳动,转载时保留该声 明和作者博客链接,谢谢!

相关程序代码下载:http://download.csdn.net/detail/iam126/4068610

或搜索“Cocos2d_for_iPhone_1_Game_Development_Cookbook代码”于CSDN;

新手翻译,不准确请见谅,参考代码与原书。

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值