| 
									
										
										
										
											2017-10-20 00:59:26 +08:00
										 |  |  | #include "..\etransitions.h"
 | 
					
						
							| 
									
										
										
										
											2017-12-09 15:27:11 +08:00
										 |  |  | #include "..\enodes.h"
 | 
					
						
							| 
									
										
										
										
											2017-10-20 00:59:26 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | e2d::ETransitionFade::ETransitionFade(float fadeOutDuration, float fadeInDuration) | 
					
						
							| 
									
										
										
										
											2017-12-09 15:27:11 +08:00
										 |  |  | 	: ETransition(0) | 
					
						
							|  |  |  | 	, m_fFadeOutDuration(fadeOutDuration * 1000) | 
					
						
							|  |  |  | 	, m_fFadeInDuration(fadeInDuration * 1000) | 
					
						
							|  |  |  | 	, m_bFadeOutTransioning(true) | 
					
						
							| 
									
										
										
										
											2017-10-20 00:59:26 +08:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2017-12-09 15:27:11 +08:00
										 |  |  | 	m_fTotalDuration = m_fFadeOutDuration; | 
					
						
							| 
									
										
										
										
											2017-10-20 00:59:26 +08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-12-09 15:27:11 +08:00
										 |  |  | void e2d::ETransitionFade::_update() | 
					
						
							| 
									
										
										
										
											2017-10-20 00:59:26 +08:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2017-12-09 15:27:11 +08:00
										 |  |  | 	if (_isDelayEnough()) | 
					
						
							| 
									
										
										
										
											2017-10-20 00:59:26 +08:00
										 |  |  | 	{ | 
					
						
							| 
									
										
										
										
											2017-12-09 15:27:11 +08:00
										 |  |  | 		if (m_bFadeOutTransioning) | 
					
						
							|  |  |  | 		{ | 
					
						
							|  |  |  | 			m_pPrevScene->getRoot()->setOpacity(1 - m_fRateOfProgress); | 
					
						
							|  |  |  | 			if (m_fDuration >= m_fTotalDuration) | 
					
						
							|  |  |  | 			{ | 
					
						
							|  |  |  | 				m_bFadeOutTransioning = false; | 
					
						
							|  |  |  | 				m_fTotalDuration = m_fFadeInDuration; | 
					
						
							|  |  |  | 				m_fDuration = 0; | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 		else | 
					
						
							| 
									
										
										
										
											2017-10-21 19:09:31 +08:00
										 |  |  | 		{ | 
					
						
							| 
									
										
										
										
											2017-12-09 15:27:11 +08:00
										 |  |  | 			m_pNextScene->getRoot()->setOpacity(m_fRateOfProgress); | 
					
						
							|  |  |  | 			if (m_fDuration >= m_fTotalDuration) | 
					
						
							|  |  |  | 			{ | 
					
						
							|  |  |  | 				this->_stop(); | 
					
						
							|  |  |  | 			} | 
					
						
							| 
									
										
										
										
											2017-10-21 19:09:31 +08:00
										 |  |  | 		} | 
					
						
							| 
									
										
										
										
											2017-12-09 15:27:11 +08:00
										 |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void e2d::ETransitionFade::_init() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	if (m_pPrevScene) | 
					
						
							|  |  |  | 	{ | 
					
						
							|  |  |  | 		m_bFadeOutTransioning = true; | 
					
						
							|  |  |  | 		m_pPrevScene->getRoot()->setOpacity(1); | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	else | 
					
						
							|  |  |  | 	{ | 
					
						
							|  |  |  | 		m_bFadeOutTransioning = false; | 
					
						
							|  |  |  | 		m_fTotalDuration = m_fFadeInDuration; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	m_pNextScene->getRoot()->setOpacity(0); | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2017-10-20 00:59:26 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-12-09 15:27:11 +08:00
										 |  |  | void e2d::ETransitionFade::_reset() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	if (m_pPrevScene) m_pPrevScene->getRoot()->setOpacity(1); | 
					
						
							|  |  |  | 	m_pNextScene->getRoot()->setOpacity(1); | 
					
						
							|  |  |  | } |