123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192 |
- /****************************************************************************
- Copyright (c) 2013-2017 Chukong Technologies Inc.
- http://www.cocos2d-x.org
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to deal
- in the Software without restriction, including without limitation the rights
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
- The above copyright notice and this permission notice shall be included in
- all copies or substantial portions of the Software.
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- THE SOFTWARE.
- ****************************************************************************/
- #ifndef __ActionObject_H__
- #define __ActionObject_H__
- #include "editor-support/cocostudio/CCActionNode.h"
- #include "2d/CCActionInstant.h"
- #include "editor-support/cocostudio/DictionaryHelper.h"
- #include "editor-support/cocostudio/CocosStudioExport.h"
- namespace cocostudio {
- class CocoLoader;
- struct stExpCocoNode;
-
- /**
- * @js NA
- * @lua NA
- */
- class CC_STUDIO_DLL ActionObject : public cocos2d::Ref
- {
- public:
- /**
- * Default constructor
- */
- ActionObject();
- /**
- * Default destructor
- */
- virtual ~ActionObject();
- /**
- * Sets name for object
- *
- * @param name name of object
- */
- void setName(const char* name);
- /**
- * Gets name of object
- *
- * @return name of object
- */
- const char* getName();
- /**
- * Sets if the action will loop play.
- *
- * @param bLoop that if the action will loop play
- */
- void setLoop(bool bLoop);
- /**
- * Gets if the action will loop play.
- *
- * @return that if the action will loop play
- */
- bool getLoop();
- /**
- * Sets the time interval of frame.
- *
- * @param fTime the time interval of frame
- */
- void setUnitTime(float fTime);
- /**
- * Gets the time interval of frame.
- *
- * @return the time interval of frame
- */
- float getUnitTime();
- /**
- * Sets the current time of frame.
- *
- * @param fTime the current time of frame
- */
- void setCurrentTime(float fTime);
- /**
- * Gets the current time of frame.
- *
- * @return the current time of frame
- */
- float getCurrentTime();
- /**
- * Gets the total time of frame.
- *
- * @return the total time of frame
- */
- float getTotalTime();
- /**
- * Return if the action is playing.
- *
- * @return true if the action is playing, false the otherwise
- */
- bool isPlaying();
- /**
- * Play the action.
- */
- void play();
- /**
- * Play the action.
- *
- * @param func Action Call Back
- */
- void play(cocos2d::CallFunc* func);
- /**
- * Pause the action.
- */
- void pause();
- /**
- * Stop the action.
- */
- void stop();
- /**
- * Adds a ActionNode to play the action.
- *
- * @param node the ActionNode which will play the action
- */
- void addActionNode(ActionNode* node);
- /**
- * Removes a ActionNode which play the action.
- *
- * @param node the ActionNode which play the action
- */
- void removeActionNode(ActionNode* node);
- /*update frame method*/
- void updateToFrameByTime(float fTime);
- /*init properties with a json dictionary*/
- void initWithDictionary(const rapidjson::Value& dic, cocos2d::Ref* root);
-
- void initWithBinary(CocoLoader* cocoLoader, stExpCocoNode* pCocoNode, cocos2d::Ref* root);
- /*scheduler update function*/
- void simulationActionUpdate(float dt);
- protected:
- int valueToInt(const std::string& value);
- bool valueToBool(const std::string& value);
- float valueToFloat(const std::string& value);
-
- cocos2d::Vector<ActionNode*> _actionNodeList;
- std::string _name;
- bool _loop;
- bool _bPause;
- bool _bPlaying;
- float _fUnitTime;
- float _currentTime;
- cocos2d::Scheduler *_pScheduler;
- cocos2d::CallFunc *_CallBack;
- float _fTotalTime;
- };
- }
- #endif
|