(译)Cocos2d_for_iPhone_1_Game_Development_Cookbook
著作权声明:本文由iam126 翻译,欢迎转载分享。
请尊重作者劳动,转载时保留该声 明和作者博客链接,谢谢!
相关程序代码下载:http://download.csdn.net/detail/iam126/4068610
或搜索“Cocos2d_for_iPhone_1_Game_Development_Cookbook代码”于CSDN;
新手翻译,不准确请见谅,参考代码与原书。
1.8 2D舒缓运动
舒缓运动允许你在游戏中使用一些公式来微调你的动作。他们可以用在这写动作中:moving(移动),scaling(缩放),fading(渐变)等等。对于具体的运动的物体,可以在X、Y方向上进行一些独立的细微的调整。这可以产生很多非常绚的效果~
如何工作…
执行如下代码:
@interface CCMoveByCustom : CCMoveBy
{
}
-(void) update: (ccTime) t;
@end
@implementation CCMoveByCustom
-(void) update: (ccTime) t
{
//Here we neglect to change something with a zero delta.
//在这里我们忽视增量为0时候的变化
if(delta.x == 0)
{
[target_ setPosition:ccp([(CCNode*)target_ position].x,(startPosition.y+ delta.y*t ))];
}
else if(delta.y == 0)
{
[target_ setPosition:ccp((startPosition.x + delta.x*t),[(CCNode*)target_ position].y )];
}
else
{
[target_ setPosition:ccp((startPosition.x + delta.x*t ),(startPosition.y+ delta.y * t ))];
}
}
@end
@implementation Ch1_EasingActions
-(CCLayer*) runRecipe
{
/*** 1D Movement Ease Action ***/
//单方向的舒缓运动
//Create the basic action to move by a certain X and Y vector
//在某一点上创建移动动画
CCActionInterval *action1D = [CCMoveBy actionWithDuration:2position:ccp(200,200)];
//Create a sprite to move
//创建一个移动精灵
CCSprite *spriteEase1D = [CCSpritespriteWithFile:@"colorable_sprite.png"];
[spriteEase1D setPosition:ccp(150,50)];
[self addChild:spriteEase1D z:1 tag:TAG_SPRITE_EASE_1D];
//Create an 'eased' movement action with a CCEase class
//用CCEase类创建一个‘舒缓的’运动
CCActionInterval *easeAction1D = [CCEaseInOut actionWithAction:action1Drate:2];
//Run the action
//运行这个动作
[spriteEase1D runAction:easeAction1D];
/*** 2D Movement Ease Action ***/
//平面上的舒缓运动
//Create two movement actions, one in each dimension
//创建两个运动,每一个都在一个维度中
CCActionInterval *action2DX = [CCMoveByCustom actionWithDuration:2position:ccp(200,0)];
CCActionInterval *action2DY = [CCMoveByCustom actionWithDuration:2position:ccp(0,200)];
//Create a sprite to move
//创建一个移动的精灵
CCSprite *spriteEase2D = [CCSpritespriteWithFile:@"colorable_sprite.png"];
[spriteEase2D setPosition:ccp(150,50)];
[self addChild:spriteEase2D z:1 tag:TAG_SPRITE_EASE_2D];
//Create two 'eased' movement actions, one on each dimension
//创建两个运动,每一个都在一个维度中
CCActionInterval *easeAction2DX = [CCEaseSineInactionWithAction:action2DX];
CCActionInterval *easeAction2DY = [CCEaseBounceInactionWithAction:action2DY];
//Run both actions
//同时运行俩动作
[spriteEase2D runAction:easeAction2DX];
[spriteEase2D runAction:easeAction2DY];
return self;
}
@end
如何工作…
执行以上代码,你应该能够看到一个点行至目的地,轨迹连成一条线,根据不同的计算方式飘忽不定的运动。
2D舒缓运动的使用:
在这个夏天,我设计iOS游戏《棒球的黄金时代》,我使用了CCMoveByCustom类来模拟不同的球场。A slider moved down and away, acutter only away and a sinker only down.这种球场显示风格的变化对于俯视游戏的发展至关重要。
总的来说,舒缓运动给予游戏一种特别专业的感觉。当你提供平滑的摄像机移动或者结算一个棒球场,舒缓运动都能成为一个优秀的工具去帮助你把你的游戏变得更佳完美~
(译)Cocos2d_for_iPhone_1_Game_Development_Cookbook
著作权声明:本文由iam126 翻译,欢迎转载分享。
请尊重作者劳动,转载时保留该声 明和作者博客链接,谢谢!
相关程序代码下载:http://download.csdn.net/detail/iam126/4068610
或搜索“Cocos2d_for_iPhone_1_Game_Development_Cookbook代码”于CSDN;
新手翻译,不准确请见谅,参考代码与原书。