(译)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;
新手翻译,不准确请见谅,参考代码与原书。