| 
									
										
										
										
											2018-04-30 16:49:44 +08:00
										 |  |  |  | #include "..\e2daction.h"
 | 
					
						
							|  |  |  |  | #include "..\e2dmanager.h"
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | e2d::ActionBase::ActionBase()  | 
					
						
							| 
									
										
										
										
											2018-05-08 17:40:36 +08:00
										 |  |  |  | 	: _bRunning(false) | 
					
						
							|  |  |  |  | 	, _bEnding(false) | 
					
						
							|  |  |  |  | 	, _bInit(false) | 
					
						
							|  |  |  |  | 	, _pTarget(nullptr) | 
					
						
							|  |  |  |  | 	, _pParentScene(nullptr) | 
					
						
							|  |  |  |  | 	, _fLast(0) | 
					
						
							| 
									
										
										
										
											2018-04-30 16:49:44 +08:00
										 |  |  |  | { | 
					
						
							|  |  |  |  | 	ActionManager::__add(this); | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | e2d::ActionBase::~ActionBase() | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-08 17:40:36 +08:00
										 |  |  |  | bool e2d::ActionBase::_isDone() | 
					
						
							| 
									
										
										
										
											2018-04-30 16:49:44 +08:00
										 |  |  |  | { | 
					
						
							| 
									
										
										
										
											2018-05-08 17:40:36 +08:00
										 |  |  |  | 	return _bEnding; | 
					
						
							| 
									
										
										
										
											2018-04-30 16:49:44 +08:00
										 |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-08 17:40:36 +08:00
										 |  |  |  | void e2d::ActionBase::_startWithTarget(Node* target) | 
					
						
							| 
									
										
										
										
											2018-04-30 16:49:44 +08:00
										 |  |  |  | { | 
					
						
							| 
									
										
										
										
											2018-05-08 17:40:36 +08:00
										 |  |  |  | 	_pTarget = target; | 
					
						
							|  |  |  |  | 	_bRunning = true; | 
					
						
							|  |  |  |  | 	this->reset(); | 
					
						
							| 
									
										
										
										
											2018-04-30 16:49:44 +08:00
										 |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-08 17:40:36 +08:00
										 |  |  |  | bool e2d::ActionBase::isRunning() | 
					
						
							| 
									
										
										
										
											2018-04-30 16:49:44 +08:00
										 |  |  |  | { | 
					
						
							| 
									
										
										
										
											2018-05-08 17:40:36 +08:00
										 |  |  |  | 	return _bRunning; | 
					
						
							| 
									
										
										
										
											2018-04-30 16:49:44 +08:00
										 |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | void e2d::ActionBase::resume() | 
					
						
							|  |  |  |  | { | 
					
						
							| 
									
										
										
										
											2018-05-08 17:40:36 +08:00
										 |  |  |  | 	_bRunning = true; | 
					
						
							|  |  |  |  | 	_fLast = Time::getTotalTime(); | 
					
						
							| 
									
										
										
										
											2018-04-30 16:49:44 +08:00
										 |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | void e2d::ActionBase::pause() | 
					
						
							|  |  |  |  | { | 
					
						
							| 
									
										
										
										
											2018-05-08 17:40:36 +08:00
										 |  |  |  | 	_bRunning = false; | 
					
						
							| 
									
										
										
										
											2018-04-30 16:49:44 +08:00
										 |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | void e2d::ActionBase::stop() | 
					
						
							|  |  |  |  | { | 
					
						
							| 
									
										
										
										
											2018-05-08 17:40:36 +08:00
										 |  |  |  | 	_bEnding = true; | 
					
						
							| 
									
										
										
										
											2018-04-30 16:49:44 +08:00
										 |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | e2d::String e2d::ActionBase::getName() const | 
					
						
							|  |  |  |  | { | 
					
						
							| 
									
										
										
										
											2018-05-08 17:40:36 +08:00
										 |  |  |  | 	return _sName; | 
					
						
							| 
									
										
										
										
											2018-04-30 16:49:44 +08:00
										 |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-07 15:48:06 +08:00
										 |  |  |  | void e2d::ActionBase::setName(const String& name) | 
					
						
							| 
									
										
										
										
											2018-04-30 16:49:44 +08:00
										 |  |  |  | { | 
					
						
							| 
									
										
										
										
											2018-05-08 17:40:36 +08:00
										 |  |  |  | 	_sName = name; | 
					
						
							| 
									
										
										
										
											2018-04-30 16:49:44 +08:00
										 |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | e2d::ActionBase * e2d::ActionBase::reverse() const | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  | 	WARN_IF(true, "ActionBase cannot be reversed!"); | 
					
						
							|  |  |  |  | 	return nullptr; | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | e2d::Node * e2d::ActionBase::getTarget() | 
					
						
							|  |  |  |  | { | 
					
						
							| 
									
										
										
										
											2018-05-08 17:40:36 +08:00
										 |  |  |  | 	return _pTarget; | 
					
						
							| 
									
										
										
										
											2018-04-30 16:49:44 +08:00
										 |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | void e2d::ActionBase::destroy() | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  | 	ActionManager::__remove(this); | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | void e2d::ActionBase::_init() | 
					
						
							|  |  |  |  | { | 
					
						
							| 
									
										
										
										
											2018-05-08 17:40:36 +08:00
										 |  |  |  | 	_bInit = true; | 
					
						
							| 
									
										
										
										
											2018-04-30 16:49:44 +08:00
										 |  |  |  | 	// <20><>¼<EFBFBD><C2BC>ǰʱ<C7B0><CAB1>
 | 
					
						
							| 
									
										
										
										
											2018-05-08 17:40:36 +08:00
										 |  |  |  | 	_fLast = Time::getTotalTime(); | 
					
						
							| 
									
										
										
										
											2018-04-30 16:49:44 +08:00
										 |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | void e2d::ActionBase::_update() | 
					
						
							|  |  |  |  | { | 
					
						
							| 
									
										
										
										
											2018-05-08 17:40:36 +08:00
										 |  |  |  | 	if (!_bInit) | 
					
						
							| 
									
										
										
										
											2018-04-30 16:49:44 +08:00
										 |  |  |  | 	{ | 
					
						
							|  |  |  |  | 		_init(); | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | void e2d::ActionBase::reset() | 
					
						
							|  |  |  |  | { | 
					
						
							| 
									
										
										
										
											2018-05-08 17:40:36 +08:00
										 |  |  |  | 	_bInit = false; | 
					
						
							|  |  |  |  | 	_bEnding = false; | 
					
						
							|  |  |  |  | 	_fLast = Time::getTotalTime(); | 
					
						
							| 
									
										
										
										
											2018-04-30 16:49:44 +08:00
										 |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | void e2d::ActionBase::_resetTime() | 
					
						
							|  |  |  |  | { | 
					
						
							| 
									
										
										
										
											2018-05-08 17:40:36 +08:00
										 |  |  |  | 	_fLast = Time::getTotalTime(); | 
					
						
							| 
									
										
										
										
											2018-04-30 16:49:44 +08:00
										 |  |  |  | } |