92 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
		
		
			
		
	
	
			92 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
|  | // Copyright (C) 2019 Nomango
 | |||
|  | 
 | |||
|  | #pragma once
 | |||
|  | #include "common.h"
 | |||
|  | 
 | |||
|  | class Man | |||
|  | 	: public Sprite | |||
|  | { | |||
|  | public: | |||
|  | 	Man() | |||
|  | 	{ | |||
|  | 		// <20><><EFBFBD><EFBFBD>ͼƬ
 | |||
|  | 		Load(L"res/man.png"); | |||
|  | 		// <20><>СͼƬ
 | |||
|  | 		SetScale(0.5f); | |||
|  | 	} | |||
|  | 
 | |||
|  | 	// ÿ֡<C3BF><D6A1><EFBFBD><EFBFBD>ʱ
 | |||
|  | 	void OnUpdate(Duration dt) override | |||
|  | 	{ | |||
|  | 		// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>豸
 | |||
|  | 		auto input = Input::Instance(); | |||
|  | 		// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҽ<EFBFBD>
 | |||
|  | 		if (input->IsDown(KeyCode::Left)) | |||
|  | 		{ | |||
|  | 			this->Move(-2, 0); | |||
|  | 		} | |||
|  | 		else if (input->IsDown(KeyCode::Right)) | |||
|  | 		{ | |||
|  | 			this->Move(2, 0); | |||
|  | 		} | |||
|  | 
 | |||
|  | 		// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>
 | |||
|  | 		if (input->IsDown(KeyCode::Up)) | |||
|  | 		{ | |||
|  | 			this->Move(0, -2); | |||
|  | 		} | |||
|  | 		else if (input->IsDown(KeyCode::Down)) | |||
|  | 		{ | |||
|  | 			this->Move(0, 2); | |||
|  | 		} | |||
|  | 
 | |||
|  | 		// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˳ʱ<CBB3><CAB1><EFBFBD><EFBFBD>תС<D7AA><D0A1>
 | |||
|  | 		if (input->IsDown(MouseButton::Left)) | |||
|  | 		{ | |||
|  | 			// <20><>ȡ<EFBFBD><C8A1>ǰ<EFBFBD><C7B0>ת<EFBFBD>Ƕ<EFBFBD>
 | |||
|  | 			float rotation = this->GetRotation(); | |||
|  | 			// <20><><EFBFBD>ýǶ<C3BD>ֵ+2
 | |||
|  | 			this->SetRotation(rotation + 2); | |||
|  | 		} | |||
|  | 
 | |||
|  | 		// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҽ<EFBFBD><D2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ػ<EFBFBD><D8BB><EFBFBD>ʾС<CABE><D0A1>
 | |||
|  | 		if (input->WasPressed(MouseButton::Right)) | |||
|  | 		{ | |||
|  | 			// <20><>ȡ<EFBFBD><C8A1>ǰ<EFBFBD><C7B0>ʾ״̬
 | |||
|  | 			bool visible = this->IsVisible(); | |||
|  | 			// <20><><EFBFBD><EFBFBD><EFBFBD>෴<EFBFBD><E0B7B4><EFBFBD><EFBFBD>ʾ״̬
 | |||
|  | 			this->SetVisible(!visible); | |||
|  | 		} | |||
|  | 	} | |||
|  | }; | |||
|  | 
 | |||
|  | class Demo2 | |||
|  | 	: public Scene | |||
|  | { | |||
|  | public: | |||
|  | 	static ScenePtr Create() | |||
|  | 	{ | |||
|  | 		return new Demo2; | |||
|  | 	} | |||
|  | 
 | |||
|  | 	Demo2() | |||
|  | 	{ | |||
|  | 		// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | |||
|  | 		auto man = E_NEW Man; | |||
|  | 		// <20><><EFBFBD><EFBFBD>Ļ<EFBFBD>Ͼ<EFBFBD><CFBE><EFBFBD><EFBFBD><EFBFBD>ʾ
 | |||
|  | 		man->SetAnchor(0.5f, 0.5f); | |||
|  | 		man->SetPosition(WINDOW_WIDTH / 2, WINDOW_HEIGHT / 2); | |||
|  | 
 | |||
|  | 		// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | |||
|  | 		auto text = E_NEW Text(L"<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>ת\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"); | |||
|  | 		// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
 | |||
|  | 		text->SetAnchor(0.5f, 0.5f); | |||
|  | 		text->SetPosition(WINDOW_WIDTH / 2, WINDOW_HEIGHT - 50); | |||
|  | 		text->SetAlignment(TextAlign::Center); | |||
|  | 
 | |||
|  | 		// <20><><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD><EFBFBD><EFBFBD>
 | |||
|  | 		this->AddChild(man); | |||
|  | 		this->AddChild(text); | |||
|  | 	} | |||
|  | }; |