| 
									
										
										
										
											2019-02-03 21:45:56 +08:00
										 |  |  |  | // Copyright (C) 2019 Nomango
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | #pragma once
 | 
					
						
							|  |  |  |  | #include "common.h"
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | class Demo3 | 
					
						
							|  |  |  |  | 	: public Scene | 
					
						
							|  |  |  |  | { | 
					
						
							| 
									
										
										
										
											2019-04-11 16:00:57 +08:00
										 |  |  |  | 	SoundPtr bgmusic;		// <20><><EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2019-02-03 21:45:56 +08:00
										 |  |  |  | 	TextPtr volume_text;	// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							|  |  |  |  | 	TextPtr state_text;		// <20><><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD>
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | public: | 
					
						
							|  |  |  |  | 	static ScenePtr Create() | 
					
						
							|  |  |  |  | 	{ | 
					
						
							|  |  |  |  | 		return new Demo3; | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	Demo3() | 
					
						
							|  |  |  |  | 	{ | 
					
						
							|  |  |  |  | 		// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2019-04-11 16:00:57 +08:00
										 |  |  |  | 		bgmusic = new Sound; | 
					
						
							|  |  |  |  | 		if (!bgmusic->Load(L"res/splash.mp3")) | 
					
						
							| 
									
										
										
										
											2019-02-03 21:45:56 +08:00
										 |  |  |  | 		{ | 
					
						
							| 
									
										
										
										
											2019-04-11 16:00:57 +08:00
										 |  |  |  | 			bgmusic = nullptr; | 
					
						
							| 
									
										
										
										
											2019-02-03 21:45:56 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-02-12 16:12:15 +08:00
										 |  |  |  | 			TextPtr err = new Text(L"<EFBFBD><EFBFBD>Ƶ<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>"); | 
					
						
							| 
									
										
										
										
											2019-02-03 21:45:56 +08:00
										 |  |  |  | 			this->AddChild(err); | 
					
						
							|  |  |  |  | 		} | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 		// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֣<EFBFBD><D6A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ò<EFBFBD><C3B2><EFBFBD>ѭ<EFBFBD><D1AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-1 <20><>ʾѭ<CABE><D1AD><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2019-04-11 16:00:57 +08:00
										 |  |  |  | 		bgmusic->Play(-1); | 
					
						
							| 
									
										
										
										
											2019-02-03 21:45:56 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 		// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2019-02-12 16:12:15 +08:00
										 |  |  |  | 		TextPtr intro_text = new Text(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n<EFBFBD><EFBFBD><EFBFBD>ո<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"); | 
					
						
							| 
									
										
										
										
											2019-03-10 13:44:02 +08:00
										 |  |  |  | 		intro_text->SetPosition(WINDOW_WIDTH / 2 - 80, WINDOW_HEIGHT / 2 - 50); | 
					
						
							| 
									
										
										
										
											2019-02-03 21:45:56 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 		// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2019-02-12 16:12:15 +08:00
										 |  |  |  | 		volume_text = new Text(L"<EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"); | 
					
						
							| 
									
										
										
										
											2019-03-10 13:44:02 +08:00
										 |  |  |  | 		volume_text->SetPosition(WINDOW_WIDTH / 2 - 80, WINDOW_HEIGHT / 2 + 30); | 
					
						
							| 
									
										
										
										
											2019-02-03 21:45:56 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 		// <20><><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2019-02-12 16:12:15 +08:00
										 |  |  |  | 		state_text = new Text(L"<EFBFBD><EFBFBD>ǰ״̬<EFBFBD><EFBFBD>"); | 
					
						
							| 
									
										
										
										
											2019-03-10 13:44:02 +08:00
										 |  |  |  | 		state_text->SetPosition(WINDOW_WIDTH / 2 - 80, WINDOW_HEIGHT / 2 + 60); | 
					
						
							| 
									
										
										
										
											2019-02-03 21:45:56 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 		// <20><><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							|  |  |  |  | 		this->AddChild(intro_text); | 
					
						
							|  |  |  |  | 		this->AddChild(volume_text); | 
					
						
							|  |  |  |  | 		this->AddChild(state_text); | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	void OnUpdate(Duration dt) override | 
					
						
							|  |  |  |  | 	{ | 
					
						
							| 
									
										
										
										
											2019-04-11 16:00:57 +08:00
										 |  |  |  | 		if (bgmusic == nullptr) | 
					
						
							| 
									
										
										
										
											2019-02-03 21:45:56 +08:00
										 |  |  |  | 			return; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 		// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>Ͳ<EFBFBD><CDB2><EFBFBD>״̬
 | 
					
						
							| 
									
										
										
										
											2019-04-11 16:00:57 +08:00
										 |  |  |  | 		float volume = bgmusic->GetVolume(); | 
					
						
							|  |  |  |  | 		bool playing = bgmusic->IsPlaying(); | 
					
						
							| 
									
										
										
										
											2019-02-03 21:45:56 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 		// <20><EFBFBD><DEB8>ı<EFBFBD>
 | 
					
						
							|  |  |  |  | 		volume_text->SetText(L"<EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" + std::to_wstring(volume)); | 
					
						
							|  |  |  |  | 		state_text->SetText(playing ? L"<EFBFBD><EFBFBD>ǰ״̬<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD>" : L"<EFBFBD><EFBFBD>ǰ״̬<EFBFBD><EFBFBD>ֹͣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 		// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>豸
 | 
					
						
							| 
									
										
										
										
											2019-02-12 16:12:15 +08:00
										 |  |  |  | 		auto& input = Input::Instance(); | 
					
						
							| 
									
										
										
										
											2019-02-03 21:45:56 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 		// <20><><EFBFBD>ո<EFBFBD><D5B8><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2019-02-12 16:12:15 +08:00
										 |  |  |  | 		if (input.WasPressed(KeyCode::Space)) | 
					
						
							| 
									
										
										
										
											2019-02-03 21:45:56 +08:00
										 |  |  |  | 		{ | 
					
						
							| 
									
										
										
										
											2019-04-11 16:00:57 +08:00
										 |  |  |  | 			bgmusic->IsPlaying() ? bgmusic->Pause() : bgmusic->Resume(); | 
					
						
							| 
									
										
										
										
											2019-02-03 21:45:56 +08:00
										 |  |  |  | 		} | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 		// <20><><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2019-02-12 16:12:15 +08:00
										 |  |  |  | 		if (input.WasPressed(KeyCode::Up)) | 
					
						
							| 
									
										
										
										
											2019-02-03 21:45:56 +08:00
										 |  |  |  | 		{ | 
					
						
							| 
									
										
										
										
											2019-04-11 16:00:57 +08:00
										 |  |  |  | 			bgmusic->SetVolume(volume + 0.1f); | 
					
						
							| 
									
										
										
										
											2019-02-03 21:45:56 +08:00
										 |  |  |  | 		} | 
					
						
							| 
									
										
										
										
											2019-02-12 16:12:15 +08:00
										 |  |  |  | 		else if (input.WasPressed(KeyCode::Down)) | 
					
						
							| 
									
										
										
										
											2019-02-03 21:45:56 +08:00
										 |  |  |  | 		{ | 
					
						
							| 
									
										
										
										
											2019-04-11 16:00:57 +08:00
										 |  |  |  | 			bgmusic->SetVolume(volume - 0.1f); | 
					
						
							| 
									
										
										
										
											2019-02-03 21:45:56 +08:00
										 |  |  |  | 		} | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | }; |