| 
									
										
										
										
											2019-02-03 21:45:56 +08:00
										 |  |  |  | // Copyright (C) 2019 Nomango
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | #pragma once
 | 
					
						
							|  |  |  |  | #include "common.h"
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | class Demo1 | 
					
						
							|  |  |  |  | 	: public Scene | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  | public: | 
					
						
							| 
									
										
										
										
											2019-08-01 13:07:48 +08:00
										 |  |  |  | 	static ScenePtr Create() | 
					
						
							| 
									
										
										
										
											2019-02-03 21:45:56 +08:00
										 |  |  |  | 	{ | 
					
						
							| 
									
										
										
										
											2019-08-01 13:07:48 +08:00
										 |  |  |  | 		return new Demo1; | 
					
						
							| 
									
										
										
										
											2019-02-03 21:45:56 +08:00
										 |  |  |  | 	} | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-08-01 13:07:48 +08:00
										 |  |  |  | 	Demo1() | 
					
						
							| 
									
										
										
										
											2019-02-03 21:45:56 +08:00
										 |  |  |  | 	{ | 
					
						
							| 
									
										
										
										
											2019-07-31 00:09:24 +08:00
										 |  |  |  | 		// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>ͼƬ
 | 
					
						
							| 
									
										
										
										
											2019-08-01 13:07:48 +08:00
										 |  |  |  | 		ImagePtr man_image = g_Loader.GetImage(L"man"); | 
					
						
							| 
									
										
										
										
											2019-04-14 23:29:17 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 		// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							|  |  |  |  | 		auto ease_functions = { | 
					
						
							|  |  |  |  | 			Ease::Linear,		// <20><><EFBFBD>Ա仯
 | 
					
						
							|  |  |  |  | 			Ease::EaseInOut,	// <20>仯<EFBFBD><E4BBAF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><D0BB><EFBFBD>
 | 
					
						
							|  |  |  |  | 			Ease::ExpoInOut,	// <20>ڿ<EFBFBD>ʼ<EFBFBD>ͽ<EFBFBD><CDBD><EFBFBD><EFBFBD>ηdz<CEB7><C7B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̷dz<CCB7><C7B3><EFBFBD>
 | 
					
						
							|  |  |  |  | 			Ease::BounceInOut,	// <20>ڿ<EFBFBD>ʼ<EFBFBD>ͽ<EFBFBD><CDBD><EFBFBD><EFBFBD>ξ<D7B6><CEBE><EFBFBD><EFBFBD>赯<EFBFBD><E8B5AF>
 | 
					
						
							|  |  |  |  | 			Ease::BackInOut		// <20><>ʼ<EFBFBD>ͽ<EFBFBD><CDBD><EFBFBD><EFBFBD>ξ<D7B6><CEBE><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ݵķ<DDB5><C4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD>
 | 
					
						
							|  |  |  |  | 		}; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 		float height = 100.f; | 
					
						
							|  |  |  |  | 		for (auto& func : ease_functions) | 
					
						
							|  |  |  |  | 		{ | 
					
						
							|  |  |  |  | 			SpritePtr man = new Sprite(man_image); | 
					
						
							|  |  |  |  | 			man->SetPosition(100, height); | 
					
						
							|  |  |  |  | 			man->SetScale(0.5f, 0.3f); | 
					
						
							|  |  |  |  | 			this->AddChild(man); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 			// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>ú<EFBFBD><C3BA><EFBFBD>
 | 
					
						
							|  |  |  |  | 			auto reset_pos = [ptr = man.Get()]() { ptr->Move(-350, 0); }; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 			// ִ<>ж<EFBFBD><D0B6><EFBFBD>
 | 
					
						
							|  |  |  |  | 			man->AddAction( | 
					
						
							|  |  |  |  | 				Tween::Group({							// Tween::Group <20><><EFBFBD>϶<EFBFBD><CFB6><EFBFBD>
 | 
					
						
							|  |  |  |  | 					Tween::MoveBy(Point{ 350, 0 })		// Tween::MoveBy <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB> 350 <20><><EFBFBD><EFBFBD>
 | 
					
						
							|  |  |  |  | 						.SetDuration(4000)				//     <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>ʱ<EFBFBD><CAB1>Ϊ 4 <20><>
 | 
					
						
							|  |  |  |  | 						.SetEaseFunc(func),				//     <20><><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							|  |  |  |  | 					Tween::Delay(1000)					// Tween::Delay <20>ӳ<EFBFBD> 1 <20><>
 | 
					
						
							| 
									
										
										
										
											2019-02-03 21:45:56 +08:00
										 |  |  |  | 				}) | 
					
						
							| 
									
										
										
										
											2019-04-14 23:29:17 +08:00
										 |  |  |  | 				.SetLoops(-1)							// <20><><EFBFBD><EFBFBD>ѭ<EFBFBD><D1AD>ִ<EFBFBD><D6B4>
 | 
					
						
							|  |  |  |  | 				.SetLoopDoneCallback(reset_pos)			// <20><><EFBFBD><EFBFBD>ÿ<EFBFBD><C3BF>ѭ<EFBFBD><D1AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
 | 
					
						
							|  |  |  |  | 			); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 			height += 60.f; | 
					
						
							|  |  |  |  | 		} | 
					
						
							| 
									
										
										
										
											2019-02-03 21:45:56 +08:00
										 |  |  |  | 	} | 
					
						
							|  |  |  |  | }; |