cocos2d-x中的基本动作

在cocos2d-x中最大的优点在于提供多种动作功能,这也是制作游戏的最常用的功能。cocos2d中的动作分为基本动作和复合动作,在这篇blog中向大家分享下基本动作,在下一篇中将详细的介绍下复合动作。
coocs2d-x提供的基本动作总共有6中,分别是:位置,缩放,旋转,画面显示,透明度,颜色,我们来一一介绍下。
 1.     位置:
(1)MoveBy与MoveTo 
这两个动作用于在指定的时间内把对象位置移动到指定位置。值得注意的是,动作要由继承了Node类(Layer,Sprite,Label等)的对象执行。
      

autoaction = MoveBy::create(5.0, Point(300, 300)); 



 5.0秒内移动相对原位置(300,300)
(2)JumpBy与JumpTo
这两个动作用于模仿跳跃的轨迹移动节点对象,即在制定时间内,以指定的高度和次数将节点对象移动到指定位置。JumpBy动作是相对的,目标位置是相对当前位置而言的。JumpTo指的就是移动到指定位置,是绝对的。
       例如:原来对象的位置是(100,100);如果都移动(200,200),则JumpBy则移动到了(300,300)的位置,JumpTo还是移动到(200,200);
     

  auto action=JumpBy::creat(5.0,Point(300,0),150,5);



代码的意思是动作在5秒钟内从当前位置移动(300,0),并且跳跃高度为150,跳跃5次。
             (3)BeizerBy和BeizerByTo
这两个动作是贝瑟尔曲线动作,沿着ccBezierConfig创建的贝塞尔曲线在制定时间内移动节点对象。在cocos2dx中使用三次贝塞尔曲线,带有起点,终点和2个控制点,创建贝塞尔曲线时,可以通过ccBezierConfig结构体对贝塞尔曲线进行设置:方法如下:
    

       ccBezierConfig bezierconfig;//创建结构体变量bezierconfig;
       bezierconfig.controlPoint_1 =Point(200,200);//设置控制点1的坐标为200,200
       bezierconfig.controlPoint_2 =Point(400,400); //设置控制点1的坐标为400,400
       bezierconfig.endPosition =Point(600,600);//设置终点坐标为600,600
       auto action =BezierTo::create(3.0,bezierconfig);//参数3是3秒的意思
       spr->runAction(action);



(4)place:
Place与setPosition()方法具有相同的功能,但是Place一般不单独使用,通常用于符合动作。用法如下:

auto action=Place::create(Point(200,200));


2.     缩放
ScaleBy,ScaleTo
这两个动作用于在之指定时间内将将节点对象缩放为指定大小。ScaleBy:以当前对象大小为基准,缩放大小值小于1.0,将缩小对象,大于1.0,将放大对象。ScaleTo:将对象缩放到指定大小,缩放与对象当前大小无关。
比如:
    

  auto spr = Sprite::create("ball.png");
      spr->setPosition(Point(100,100));
      spr->setScale(2.0);
      this->addChild(spr);



      autoaction = ScaleBy::create(2.0,2.0);//以当前大小为基准,当前大小是2.0,所以在屏幕上最初显示的是2.0倍的图像,然后由于ScaleBy中还有一个2.0,大于1.0,所以会将图像再放大为2.0倍。
//如果这条语句中的ScaleBy改成了ScaleTo,效果将大大不一样。因为ScaleTo比较的是和当前图像的相对大小关系,如果大于当前的增大,小于当前的缩小。
       spr->runAction(action);
3.旋转
RotateBy,RotateTo
这两个动作用于在指定时间内对节点对象旋转指定的角度。使用RotateTo动作时,当输入的角度为正时,按照顺时针防线旋转,输入的角度为负时,按照逆时针方向进行旋转。不过,当旋转角度超过180度时,略有不同。比如:指定的旋转角度为270度后,并非沿着顺时针旋转270,而是逆时针旋转90度,到达沿顺时针旋转270度的位置。换句话说,在使用RotateTo动作时,旋转方向并不是由输入的角度决定,而是根据要旋转到的位置选择能够最快到达的方向进行旋转。RotateBy动作会根据指定的角度进行旋转,比如,设置的角度为270度时,将沿着顺时针方向旋转270,同样,设置旋转角度为-450度时,先逆时针旋转一圈,再逆时针旋转90度。此外,若设置角度时只指定了一个参数,则绕Z轴进行旋转,若指定2个参数,则沿着X轴和Y轴进行旋转。

auto sr = Sprite::create("game/player.png");
sr->setPosition(visibleSize.width/2,visibleSize.height/2);
this->addChild(sr);
auto action = RotateBy::create(10.0,450,270);//绕着X,Y同时进行旋转
auto action = RotateBy::create(10.0, 450, 0);//绕着X轴进行旋转
auto action = RotateBy::create(10.0, 0, 270);//绕着Y轴进行旋转
auto action = RotateBy::create(10.0, 450);//绕着Z轴进行旋转
sr->runAction(action);

4.画面显示

(1)Show,Hide

这两个动作是互为反动作,Show动作是用来显示节点的动作,其功能相当于setVisible(true),Show动作大多用于复合动作。Hide动作的作用是隐藏节点,相当于setVisible(false).

auto action=Show::create();

auto action=Hide::create();

(2)Blink

该动作用于在指定时间内为节点对象闪烁指定次数。

auto action=Blink(3.0,10).//创建Blink动作,指定3秒钟闪烁10次。

(3)ToggleVisibility

该动作用于切换节点对象的可视属相,对调用setVisible()方法设置的结果进行反向切换。节点对象显示在画面上时,执行ToggleVisibility动作后,节点对象将隐藏;反之,节点对象隐藏时执行该动作,将显示节点对象。


auto action=ToggleVisibility::create().


5.透明度

(1)FadeIn,FadeOut()

该动作在指定时间内将对象的 透明度由0变到255,为对象添加淡入效果时常常使用FadeIn动作。使用该动作时,对象的透明度将先强制变为0,然后从0逐渐变为255.若对象已经显示在画面上,执行该动作后,对象的透明度也会被强制变为0,然后淡出。

spr->setOpacity(0;//将透明度设置为0,即不可见。FadeOut动作和FadeIn动作完全相反,在指定时间内将对象的透明度由255变到0.

auto action=FadeIn::create(3.0)//3秒内逐渐显现出来。

spr->runAction(ction);

(2)FadeTo:

该动作在指定时间内把对象的透明度变为指定值。

auto action=FadeTo(3.0,128);//执行动作时,3秒内将其透明度迅速变为128,使之半透明。


6.颜色:

TintBy,TintTo。

对于TintTo动作好理解,就是在指定的时间内变到相应的颜色。

auto action=TintTo::create(3.0,255,0,0);//执行动作后3秒变成红色。

对于TintBy动作,甚是不理解,各位谁若是懂的TintBy动作,一定要私聊我。。。。




,

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: cocos2d-x js是一个开源的游戏开发引擎,用于开发跨平台的2D游戏,它使用JavaScript作为脚本语言。以下是对cocos2d-x js的回答。 cocos2d-x js是cocos2d-x引擎的JavaScript版本,它继承了cocos2d-x引擎强大的功能和性能,同时提供了使用JavaScript编写游戏的便利性。 cocos2d-x js通过使用JavaScript脚本语言进行游戏开发,使得开发者可以更加方便地编写游戏逻辑和动作表现。JavaScript是一种简单易用的脚本语言,对于不熟悉复杂编程语言的开发者来说,使用JavaScript进行游戏开发会更加容易上手。 cocos2d-x js提供了丰富的游戏功能和API,包括精灵动画、物理引擎、碰撞检测、场景管理等,这些功能可以帮助开发者快速构建2D游戏。同时,cocos2d-x js还提供了跨平台的支持,可以将游戏轻松移植到不同的平台上,如iOS、Android、Windows等。 除了基本的功能和API,cocos2d-x js还支持插件和扩展,开发者可以根据自己的需求进行扩展和定制,以满足游戏的特殊需求。 总结来说,cocos2d-x js是一个强大而灵活的游戏开发引擎,它提供了使用JavaScript进行游戏开发的便利性,同时具备跨平台的支持和丰富的功能和API。无论是初学者还是有经验的开发者,都可以通过cocos2d-x js来快速构建出高质量的2D游戏。 ### 回答2: Cocos2d-x是一款强大的跨平台游戏开发引擎,具有许多独特而且强大的功能。cocos2d-x js篇是Cocos2d-x引擎的JavaScript版本,它可以让开发者使用JavaScript编写游戏逻辑和界面。 使用Cocos2d-x js篇,开发者可以轻松地创建2D游戏,并在多个平台上运行,如iOS、Android、Windows和Web。这意味着开发者只需编写一次代码,就可以发布到多个平台,大大提高了开发效率。 cocos2d-x js篇提供了丰富的API和功能,使得开发复杂的游戏变得轻松。它包括图形渲染、动画系统、物理引擎、碰撞检测、音频管理等功能,开发者可以利用这些功能创建出丰富多样的游戏体验。 此外,cocos2d-x js篇还支持现代开发工具和技术,如可视化编辑器Cocos Creator,可实时调试和热更新等。开发者可以使用Cocos Creator创建游戏场景、编辑动画、创建粒子效果等。同时,Cocos2d-x js篇还集成了调试工具,方便开发者进行错误排查和优化。 总之,Cocos2d-x js篇是一个非常强大且灵活的游戏开发引擎。它提供了广泛的功能和工具,使得开发者能够快速创建高质量的2D游戏,并在多个平台上发布。无论是初学者还是有经验的开发者,都可以通过Cocos2d-x js篇轻松实现独特而丰富的游戏体验。 ### 回答3: Cocos2d-x js是一种使用Javascript编写的跨平台游戏开发框架。它是基于Cocos2d-x引擎的扩展,可以在多个平台上运行,包括iOS、Android、Windows和Mac等。 Cocos2d-x js提供了丰富的游戏开发工具和功能,可以帮助开发人员轻松创建高质量的游戏应用。它具有优秀的性能和灵活性,并且能够快速部署到各种平台上。 使用Cocos2d-x js,开发人员可以使用熟悉的Javascript语言进行游戏开发,而无需学习其他编程语言。它提供了一系列API和组件,例如精灵、动作、节点和场景等,以简化游戏的创建和管理过程。 此外,Cocos2d-x js还提供了多种功能,如物理引擎、碰撞检测、音效播放和动画效果等,可以帮助开发人员实现各种游戏特效和交互效果。 Cocos2d-x js还支持一些常用的开发模式和工具,如游戏UI编辑器、游戏调试器和性能分析器等,方便开发人员进行游戏开发和调试。 总之,Cocos2d-x js是一款功能强大、易于使用并且跨平台的游戏开发框架。无论是新手还是经验丰富的开发人员,都可以借助它来创建出令人印象深刻的游戏应用。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值