Cocos2d-x-----------------------------------------------ActionManager

1、如果一個精靈同時執行多個動作action,這些動作是並行的


2、停止目前動作

node->stopAllActions();

node會停止目前正在執行的動作,但是不會影響到這句之後執行的action


3、延遲時間執行動作

1)、加入動作管理器並停止執行動作

Director::getInstance()->getActionManager()->addAction(action, grossini, true);


action:動作

grossini:精靈

true:是不是暫停


2)推延時間

方法一:scheduleOnce,設置delay時間

方法二:this->runAction(action);執行DelayTime動作

方法三:schedule,在schedule裏面停止計時器,與方法一同


3)恢復執行動作

Director::getInstance()->getActionManager()->resumeTarget(node);

恢復node節點的動作


PS:也可以直接讓node執行action序列,先延時在動作執行完的回調函數中執行需要延時的動作


4、停止指定動作

node->stopActionByTag(22);

通過給action設置tag或者flags可以停止某個動作,如果不同的action有同一個tag,則可以通過這個方法停止多個動作


5、節點停止所有動作

暫停:

Director::getInstance()->getActionManager()->pauseTarget(node);

停止節點node的所有動作,包括這句代碼之前執行的還是這句代碼之後執行的

node->runAction(ScaleBy::create(2, 2));

Director::getInstance()->getActionManager()->pauseTarget(node);

node->runAction(RotateBy::create(2, 360));

這樣的話,節點並不會執行放大的動作,也不會執行旋轉的動作


恢復:Director::getInstance()->getActionManager()->resumeTarget(node);

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章