您的位置:首页 > 移动开发 > Cocos引擎

cocos2d-x 基本概念 动作 Action

2014-05-12 13:48 459 查看
Actions 继承了CCNoded的属性。actions通常会修改对象的一些属性,如位置,旋转,缩放等。如果这些属性在一段时间内被修改,它们是CCIntervalAction actions,相反则是 CCInstantAction actions.

例如,CCMoveBy action是在一段时间内修改了位置属性,因此,它是CCIntervalAction的子类.

你可以运行TestCpp -> Actions Test 来查看actions的可视化效果。cocos2d-x/samples/Cpp/TestCpp/Classes/ActionsTest, ActionsEaseTest 是非常好的实例代码用法。

例如:

// Move a sprite 50 pixels to the right, and 10 pixels to the top over 2 seconds.
CCActionInterval* actionBy = CCMoveBy::create(2, ccp(50,10));


CCIntervalAction actions有一些有意思的属性:

它们可以在时间切换action中被访问到:

CCEaseIn

CCEaseOut

CCEaseInOut

CCSpeed

等. (更多信息,详见ActionsEaseTest.cpp实例)

你可以通过用CCActionManager来暂停和恢复所有actions:

// Pause actions
CCDirector *director = CCDirector::sharedDirector();
m_pPausedTargets = director->getActionManager()->pauseAllRunningActions();

// resume actions
CCDirector *director = CCDirector::sharedDirector();
director->getActionManager()->resumeTargets(m_pPausedTargets);


Basic Actions

基本actions是指修改基本属性如:

位置(position)

CCMoveBy

CCMoveTo

CCJumpBy

CCJumpTo

CCBezierBy

CCBezierTo

CCPlace

缩放(scale)

CCScaleBy

CCScaleTo

旋转(rotation)

CCRotateBy

CCRotateTo

可见性(visible)

CCShow

CCHide

CCBlink

CCToggleVisibility

透明度(opacity)

CCFadeIn

CCFadeOut

CCFadeTo

颜色(color)

CCTintBy

CCTintTo

例如:

CCSprite *sprite = CCSprite::create("Images/grossini.png");
sprite->setPosition(ccp(100, 100)); addChild(sprite);
CCMoveBy* act1 = CCMoveBy::create(0.5, ccp(100, 0));
sprite->runAction(CCRepeat::create(act1, 1));


act1是持续0.5秒的CCMoveBy action,并且使用位置
ccp(100,0)
的值?.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: