(译)Cocos2d_for_iPhone_1_Game_Development_Cookbook:1.8 2D舒缓运动

(译)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;

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

 


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值