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)
缩放(scale)
旋转(rotation)
可见性(visible)
透明度(opacity)
颜色(color)
例如:
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)
的值?.
标签:Actions
cocos2d-x官方文档
动作