[deploy] Merge pull request #32 from KiwanoEngine/dev
rename Node to Actor, rename Scene to Stage, rename Stage to Director
This commit is contained in:
		
						commit
						f461e97b14
					
				|  | @ -2,7 +2,7 @@ | ||||||
| <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | ||||||
|   <ItemGroup> |   <ItemGroup> | ||||||
|     <ClInclude Include="..\src\kiwano\2d\GifSprite.h" /> |     <ClInclude Include="..\src\kiwano\2d\GifSprite.h" /> | ||||||
|     <ClInclude Include="..\src\kiwano\base\Stage.h" /> |     <ClInclude Include="..\src\kiwano\base\Director.h" /> | ||||||
|     <ClInclude Include="..\src\kiwano\base\types.h" /> |     <ClInclude Include="..\src\kiwano\base\types.h" /> | ||||||
|     <ClInclude Include="..\src\kiwano\kiwano.h" /> |     <ClInclude Include="..\src\kiwano\kiwano.h" /> | ||||||
|     <ClInclude Include="..\src\kiwano\config.h" /> |     <ClInclude Include="..\src\kiwano\config.h" /> | ||||||
|  | @ -23,8 +23,8 @@ | ||||||
|     <ClInclude Include="..\src\kiwano\2d\GifImage.h" /> |     <ClInclude Include="..\src\kiwano\2d\GifImage.h" /> | ||||||
|     <ClInclude Include="..\src\kiwano\2d\Image.h" /> |     <ClInclude Include="..\src\kiwano\2d\Image.h" /> | ||||||
|     <ClInclude Include="..\src\kiwano\2d\Layer.h" /> |     <ClInclude Include="..\src\kiwano\2d\Layer.h" /> | ||||||
|     <ClInclude Include="..\src\kiwano\2d\Node.h" /> |     <ClInclude Include="..\src\kiwano\2d\Actor.h" /> | ||||||
|     <ClInclude Include="..\src\kiwano\2d\Scene.h" /> |     <ClInclude Include="..\src\kiwano\2d\Stage.h" /> | ||||||
|     <ClInclude Include="..\src\kiwano\2d\Sprite.h" /> |     <ClInclude Include="..\src\kiwano\2d\Sprite.h" /> | ||||||
|     <ClInclude Include="..\src\kiwano\2d\Text.h" /> |     <ClInclude Include="..\src\kiwano\2d\Text.h" /> | ||||||
|     <ClInclude Include="..\src\kiwano\2d\TextStyle.hpp" /> |     <ClInclude Include="..\src\kiwano\2d\TextStyle.hpp" /> | ||||||
|  | @ -97,8 +97,8 @@ | ||||||
|     <ClCompile Include="..\src\kiwano\2d\GifSprite.cpp" /> |     <ClCompile Include="..\src\kiwano\2d\GifSprite.cpp" /> | ||||||
|     <ClCompile Include="..\src\kiwano\2d\Image.cpp" /> |     <ClCompile Include="..\src\kiwano\2d\Image.cpp" /> | ||||||
|     <ClCompile Include="..\src\kiwano\2d\Layer.cpp" /> |     <ClCompile Include="..\src\kiwano\2d\Layer.cpp" /> | ||||||
|     <ClCompile Include="..\src\kiwano\2d\Node.cpp" /> |     <ClCompile Include="..\src\kiwano\2d\Actor.cpp" /> | ||||||
|     <ClCompile Include="..\src\kiwano\2d\Scene.cpp" /> |     <ClCompile Include="..\src\kiwano\2d\Stage.cpp" /> | ||||||
|     <ClCompile Include="..\src\kiwano\2d\Sprite.cpp" /> |     <ClCompile Include="..\src\kiwano\2d\Sprite.cpp" /> | ||||||
|     <ClCompile Include="..\src\kiwano\2d\Text.cpp" /> |     <ClCompile Include="..\src\kiwano\2d\Text.cpp" /> | ||||||
|     <ClCompile Include="..\src\kiwano\2d\Transition.cpp" /> |     <ClCompile Include="..\src\kiwano\2d\Transition.cpp" /> | ||||||
|  | @ -109,7 +109,7 @@ | ||||||
|     <ClCompile Include="..\src\kiwano\base\logs.cpp" /> |     <ClCompile Include="..\src\kiwano\base\logs.cpp" /> | ||||||
|     <ClCompile Include="..\src\kiwano\base\Object.cpp" /> |     <ClCompile Include="..\src\kiwano\base\Object.cpp" /> | ||||||
|     <ClCompile Include="..\src\kiwano\base\Resource.cpp" /> |     <ClCompile Include="..\src\kiwano\base\Resource.cpp" /> | ||||||
|     <ClCompile Include="..\src\kiwano\base\Stage.cpp" /> |     <ClCompile Include="..\src\kiwano\base\Director.cpp" /> | ||||||
|     <ClCompile Include="..\src\kiwano\base\Timer.cpp" /> |     <ClCompile Include="..\src\kiwano\base\Timer.cpp" /> | ||||||
|     <ClCompile Include="..\src\kiwano\base\TimerManager.cpp" /> |     <ClCompile Include="..\src\kiwano\base\TimerManager.cpp" /> | ||||||
|     <ClCompile Include="..\src\kiwano\base\time.cpp" /> |     <ClCompile Include="..\src\kiwano\base\time.cpp" /> | ||||||
|  |  | ||||||
|  | @ -84,12 +84,6 @@ | ||||||
|     <ClInclude Include="..\src\kiwano\2d\Layer.h"> |     <ClInclude Include="..\src\kiwano\2d\Layer.h"> | ||||||
|       <Filter>2d</Filter> |       <Filter>2d</Filter> | ||||||
|     </ClInclude> |     </ClInclude> | ||||||
|     <ClInclude Include="..\src\kiwano\2d\Node.h"> |  | ||||||
|       <Filter>2d</Filter> |  | ||||||
|     </ClInclude> |  | ||||||
|     <ClInclude Include="..\src\kiwano\2d\Scene.h"> |  | ||||||
|       <Filter>2d</Filter> |  | ||||||
|     </ClInclude> |  | ||||||
|     <ClInclude Include="..\src\kiwano\2d\Sprite.h"> |     <ClInclude Include="..\src\kiwano\2d\Sprite.h"> | ||||||
|       <Filter>2d</Filter> |       <Filter>2d</Filter> | ||||||
|     </ClInclude> |     </ClInclude> | ||||||
|  | @ -267,9 +261,15 @@ | ||||||
|     <ClInclude Include="..\src\kiwano\2d\ShapeNode.h"> |     <ClInclude Include="..\src\kiwano\2d\ShapeNode.h"> | ||||||
|       <Filter>2d</Filter> |       <Filter>2d</Filter> | ||||||
|     </ClInclude> |     </ClInclude> | ||||||
|     <ClInclude Include="..\src\kiwano\base\Stage.h"> |     <ClInclude Include="..\src\kiwano\base\Director.h"> | ||||||
|       <Filter>base</Filter> |       <Filter>base</Filter> | ||||||
|     </ClInclude> |     </ClInclude> | ||||||
|  |     <ClInclude Include="..\src\kiwano\2d\Actor.h"> | ||||||
|  |       <Filter>2d</Filter> | ||||||
|  |     </ClInclude> | ||||||
|  |     <ClInclude Include="..\src\kiwano\2d\Stage.h"> | ||||||
|  |       <Filter>2d</Filter> | ||||||
|  |     </ClInclude> | ||||||
|   </ItemGroup> |   </ItemGroup> | ||||||
|   <ItemGroup> |   <ItemGroup> | ||||||
|     <ClCompile Include="..\src\kiwano\ui\Button.cpp"> |     <ClCompile Include="..\src\kiwano\ui\Button.cpp"> | ||||||
|  | @ -311,12 +311,6 @@ | ||||||
|     <ClCompile Include="..\src\kiwano\2d\Layer.cpp"> |     <ClCompile Include="..\src\kiwano\2d\Layer.cpp"> | ||||||
|       <Filter>2d</Filter> |       <Filter>2d</Filter> | ||||||
|     </ClCompile> |     </ClCompile> | ||||||
|     <ClCompile Include="..\src\kiwano\2d\Node.cpp"> |  | ||||||
|       <Filter>2d</Filter> |  | ||||||
|     </ClCompile> |  | ||||||
|     <ClCompile Include="..\src\kiwano\2d\Scene.cpp"> |  | ||||||
|       <Filter>2d</Filter> |  | ||||||
|     </ClCompile> |  | ||||||
|     <ClCompile Include="..\src\kiwano\2d\Sprite.cpp"> |     <ClCompile Include="..\src\kiwano\2d\Sprite.cpp"> | ||||||
|       <Filter>2d</Filter> |       <Filter>2d</Filter> | ||||||
|     </ClCompile> |     </ClCompile> | ||||||
|  | @ -407,8 +401,14 @@ | ||||||
|     <ClCompile Include="..\src\kiwano\2d\ShapeNode.cpp"> |     <ClCompile Include="..\src\kiwano\2d\ShapeNode.cpp"> | ||||||
|       <Filter>2d</Filter> |       <Filter>2d</Filter> | ||||||
|     </ClCompile> |     </ClCompile> | ||||||
|     <ClCompile Include="..\src\kiwano\base\Stage.cpp"> |     <ClCompile Include="..\src\kiwano\base\Director.cpp"> | ||||||
|       <Filter>base</Filter> |       <Filter>base</Filter> | ||||||
|     </ClCompile> |     </ClCompile> | ||||||
|  |     <ClCompile Include="..\src\kiwano\2d\Actor.cpp"> | ||||||
|  |       <Filter>2d</Filter> | ||||||
|  |     </ClCompile> | ||||||
|  |     <ClCompile Include="..\src\kiwano\2d\Stage.cpp"> | ||||||
|  |       <Filter>2d</Filter> | ||||||
|  |     </ClCompile> | ||||||
|   </ItemGroup> |   </ItemGroup> | ||||||
| </Project> | </Project> | ||||||
|  | @ -19,7 +19,7 @@ | ||||||
| // THE SOFTWARE.
 | // THE SOFTWARE.
 | ||||||
| 
 | 
 | ||||||
| #include "Action.h" | #include "Action.h" | ||||||
| #include "Node.h" | #include "Actor.h" | ||||||
| 
 | 
 | ||||||
| namespace kiwano | namespace kiwano | ||||||
| { | { | ||||||
|  | @ -36,16 +36,16 @@ namespace kiwano | ||||||
| 	{ | 	{ | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void Action::Init(NodePtr target) | 	void Action::Init(ActorPtr target) | ||||||
| 	{ | 	{ | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void Action::Update(NodePtr target, Duration dt) | 	void Action::Update(ActorPtr target, Duration dt) | ||||||
| 	{ | 	{ | ||||||
| 		Complete(target); | 		Complete(target); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void Action::UpdateStep(NodePtr target, Duration dt) | 	void Action::UpdateStep(ActorPtr target, Duration dt) | ||||||
| 	{ | 	{ | ||||||
| 		elapsed_ += dt; | 		elapsed_ += dt; | ||||||
| 
 | 
 | ||||||
|  | @ -81,7 +81,7 @@ namespace kiwano | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void Action::Complete(NodePtr target) | 	void Action::Complete(ActorPtr target) | ||||||
| 	{ | 	{ | ||||||
| 		if (cb_loop_done_) | 		if (cb_loop_done_) | ||||||
| 			cb_loop_done_(); | 			cb_loop_done_(); | ||||||
|  | @ -99,7 +99,7 @@ namespace kiwano | ||||||
| 		++loops_done_; | 		++loops_done_; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void Action::Restart(NodePtr target) | 	void Action::Restart(ActorPtr target) | ||||||
| 	{ | 	{ | ||||||
| 		status_ = Status::NotStarted; | 		status_ = Status::NotStarted; | ||||||
| 		elapsed_ = 0; | 		elapsed_ = 0; | ||||||
|  |  | ||||||
|  | @ -64,7 +64,7 @@ namespace kiwano | ||||||
| 		// 设置循环次数 (-1 为永久循环)
 | 		// 设置循环次数 (-1 为永久循环)
 | ||||||
| 		inline void SetLoops(int loops)								{ loops_ = loops; } | 		inline void SetLoops(int loops)								{ loops_ = loops; } | ||||||
| 
 | 
 | ||||||
| 		// 动作结束时移除目标节点
 | 		// 动作结束时移除目标角色
 | ||||||
| 		inline void RemoveTargetWhenDone()							{ detach_target_ = true; } | 		inline void RemoveTargetWhenDone()							{ detach_target_ = true; } | ||||||
| 
 | 
 | ||||||
| 		// 设置动作结束时的回调函数
 | 		// 设置动作结束时的回调函数
 | ||||||
|  | @ -100,15 +100,15 @@ namespace kiwano | ||||||
| 		inline ActionCallback GetLoopDoneCallback() const			{ return cb_loop_done_; } | 		inline ActionCallback GetLoopDoneCallback() const			{ return cb_loop_done_; } | ||||||
| 
 | 
 | ||||||
| 	protected: | 	protected: | ||||||
| 		virtual void Init(NodePtr target); | 		virtual void Init(ActorPtr target); | ||||||
| 
 | 
 | ||||||
| 		virtual void Update(NodePtr target, Duration dt); | 		virtual void Update(ActorPtr target, Duration dt); | ||||||
| 
 | 
 | ||||||
| 		void UpdateStep(NodePtr target, Duration dt); | 		void UpdateStep(ActorPtr target, Duration dt); | ||||||
| 
 | 
 | ||||||
| 		void Complete(NodePtr target); | 		void Complete(ActorPtr target); | ||||||
| 
 | 
 | ||||||
| 		void Restart(NodePtr target); | 		void Restart(ActorPtr target); | ||||||
| 
 | 
 | ||||||
| 	protected: | 	protected: | ||||||
| 		Status			status_; | 		Status			status_; | ||||||
|  |  | ||||||
|  | @ -19,7 +19,7 @@ | ||||||
| // THE SOFTWARE.
 | // THE SOFTWARE.
 | ||||||
| 
 | 
 | ||||||
| #include "ActionGroup.h" | #include "ActionGroup.h" | ||||||
| #include "Node.h" | #include "Actor.h" | ||||||
| #include "../base/logs.h" | #include "../base/logs.h" | ||||||
| 
 | 
 | ||||||
| namespace kiwano | namespace kiwano | ||||||
|  | @ -43,7 +43,7 @@ namespace kiwano | ||||||
| 	{ | 	{ | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void ActionGroup::Init(NodePtr target) | 	void ActionGroup::Init(ActorPtr target) | ||||||
| 	{ | 	{ | ||||||
| 		if (actions_.IsEmpty()) | 		if (actions_.IsEmpty()) | ||||||
| 		{ | 		{ | ||||||
|  | @ -64,7 +64,7 @@ namespace kiwano | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void ActionGroup::Update(NodePtr target, Duration dt) | 	void ActionGroup::Update(ActorPtr target, Duration dt) | ||||||
| 	{ | 	{ | ||||||
| 		if (sequence_) | 		if (sequence_) | ||||||
| 		{ | 		{ | ||||||
|  |  | ||||||
|  | @ -60,10 +60,10 @@ namespace kiwano | ||||||
| 
 | 
 | ||||||
| 	protected: | 	protected: | ||||||
| 		// 初始化动作
 | 		// 初始化动作
 | ||||||
| 		void Init(NodePtr target) override; | 		void Init(ActorPtr target) override; | ||||||
| 
 | 
 | ||||||
| 		// 更新动作
 | 		// 更新动作
 | ||||||
| 		void Update(NodePtr target, Duration dt) override; | 		void Update(ActorPtr target, Duration dt) override; | ||||||
| 
 | 
 | ||||||
| 	protected: | 	protected: | ||||||
| 		bool		sequence_; | 		bool		sequence_; | ||||||
|  |  | ||||||
|  | @ -39,7 +39,7 @@ namespace kiwano | ||||||
| 		// 设置动作循环结束时的回调函数
 | 		// 设置动作循环结束时的回调函数
 | ||||||
| 		inline ActionHelper& SetLoopDoneCallback(ActionCallback const& cb)	{ base->SetLoopDoneCallback(cb); return (*this); } | 		inline ActionHelper& SetLoopDoneCallback(ActionCallback const& cb)	{ base->SetLoopDoneCallback(cb); return (*this); } | ||||||
| 
 | 
 | ||||||
| 		// 动作结束时移除目标节点
 | 		// 动作结束时移除目标角色
 | ||||||
| 		inline ActionHelper& RemoveTargetWhenDone()							{ base->RemoveTargetWhenDone(); return (*this); } | 		inline ActionHelper& RemoveTargetWhenDone()							{ base->RemoveTargetWhenDone(); return (*this); } | ||||||
| 
 | 
 | ||||||
| 		// 设置名称
 | 		// 设置名称
 | ||||||
|  | @ -76,7 +76,7 @@ namespace kiwano | ||||||
| 		// 设置动作循环结束时的回调函数
 | 		// 设置动作循环结束时的回调函数
 | ||||||
| 		inline TweenHelper& SetLoopDoneCallback(ActionCallback const& cb)	{ base->SetLoopDoneCallback(cb); return (*this); } | 		inline TweenHelper& SetLoopDoneCallback(ActionCallback const& cb)	{ base->SetLoopDoneCallback(cb); return (*this); } | ||||||
| 
 | 
 | ||||||
| 		// 动作结束时移除目标节点
 | 		// 动作结束时移除目标角色
 | ||||||
| 		inline TweenHelper& RemoveTargetWhenDone()							{ base->RemoveTargetWhenDone(); return (*this); } | 		inline TweenHelper& RemoveTargetWhenDone()							{ base->RemoveTargetWhenDone(); return (*this); } | ||||||
| 
 | 
 | ||||||
| 		// 设置名称
 | 		// 设置名称
 | ||||||
|  |  | ||||||
|  | @ -19,12 +19,12 @@ | ||||||
| // THE SOFTWARE.
 | // THE SOFTWARE.
 | ||||||
| 
 | 
 | ||||||
| #include "ActionManager.h" | #include "ActionManager.h" | ||||||
| #include "Node.h" | #include "Actor.h" | ||||||
| #include "../base/logs.h" | #include "../base/logs.h" | ||||||
| 
 | 
 | ||||||
| namespace kiwano | namespace kiwano | ||||||
| { | { | ||||||
| 	void ActionManager::UpdateActions(NodePtr target, Duration dt) | 	void ActionManager::UpdateActions(ActorPtr target, Duration dt) | ||||||
| 	{ | 	{ | ||||||
| 		if (actions_.IsEmpty() || !target) | 		if (actions_.IsEmpty() || !target) | ||||||
| 			return; | 			return; | ||||||
|  |  | ||||||
|  | @ -51,7 +51,7 @@ namespace kiwano | ||||||
| 		Actions const& GetAllActions() const; | 		Actions const& GetAllActions() const; | ||||||
| 
 | 
 | ||||||
| 	protected: | 	protected: | ||||||
| 		void UpdateActions(NodePtr target, Duration dt); | 		void UpdateActions(ActorPtr target, Duration dt); | ||||||
| 
 | 
 | ||||||
| 	protected: | 	protected: | ||||||
| 		Actions actions_; | 		Actions actions_; | ||||||
|  |  | ||||||
|  | @ -20,7 +20,7 @@ | ||||||
| 
 | 
 | ||||||
| #include "ActionTween.h" | #include "ActionTween.h" | ||||||
| #include "include-forwards.h" | #include "include-forwards.h" | ||||||
| #include "Node.h" | #include "Actor.h" | ||||||
| 
 | 
 | ||||||
| namespace kiwano | namespace kiwano | ||||||
| { | { | ||||||
|  | @ -98,7 +98,7 @@ namespace kiwano | ||||||
| 		return dur_; | 		return dur_; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void ActionTween::Update(NodePtr target, Duration dt) | 	void ActionTween::Update(ActorPtr target, Duration dt) | ||||||
| 	{ | 	{ | ||||||
| 		float percent; | 		float percent; | ||||||
| 
 | 
 | ||||||
|  | @ -142,7 +142,7 @@ namespace kiwano | ||||||
| 		delta_pos_ = vector; | 		delta_pos_ = vector; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void ActionMoveBy::Init(NodePtr target) | 	void ActionMoveBy::Init(ActorPtr target) | ||||||
| 	{ | 	{ | ||||||
| 		if (target) | 		if (target) | ||||||
| 		{ | 		{ | ||||||
|  | @ -150,7 +150,7 @@ namespace kiwano | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void ActionMoveBy::UpdateTween(NodePtr target, float percent) | 	void ActionMoveBy::UpdateTween(ActorPtr target, float percent) | ||||||
| 	{ | 	{ | ||||||
| 		Point diff = target->GetPosition() - prev_pos_; | 		Point diff = target->GetPosition() - prev_pos_; | ||||||
| 		start_pos_ = start_pos_ + diff; | 		start_pos_ = start_pos_ + diff; | ||||||
|  | @ -182,7 +182,7 @@ namespace kiwano | ||||||
| 		return new (std::nothrow) ActionMoveTo(dur_, end_pos_, ease_func_); | 		return new (std::nothrow) ActionMoveTo(dur_, end_pos_, ease_func_); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void ActionMoveTo::Init(NodePtr target) | 	void ActionMoveTo::Init(ActorPtr target) | ||||||
| 	{ | 	{ | ||||||
| 		ActionMoveBy::Init(target); | 		ActionMoveBy::Init(target); | ||||||
| 		delta_pos_ = end_pos_ - start_pos_; | 		delta_pos_ = end_pos_ - start_pos_; | ||||||
|  | @ -211,7 +211,7 @@ namespace kiwano | ||||||
| 		return new (std::nothrow) ActionJumpBy(dur_, -delta_pos_, height_, jumps_, ease_func_); | 		return new (std::nothrow) ActionJumpBy(dur_, -delta_pos_, height_, jumps_, ease_func_); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void ActionJumpBy::Init(NodePtr target) | 	void ActionJumpBy::Init(ActorPtr target) | ||||||
| 	{ | 	{ | ||||||
| 		if (target) | 		if (target) | ||||||
| 		{ | 		{ | ||||||
|  | @ -219,7 +219,7 @@ namespace kiwano | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void ActionJumpBy::UpdateTween(NodePtr target, float percent) | 	void ActionJumpBy::UpdateTween(ActorPtr target, float percent) | ||||||
| 	{ | 	{ | ||||||
| 		float frac = fmod(percent * jumps_, 1.f); | 		float frac = fmod(percent * jumps_, 1.f); | ||||||
| 		float x = delta_pos_.x * percent; | 		float x = delta_pos_.x * percent; | ||||||
|  | @ -246,7 +246,7 @@ namespace kiwano | ||||||
| 		return new (std::nothrow) ActionJumpTo(dur_, end_pos_, height_, jumps_, ease_func_); | 		return new (std::nothrow) ActionJumpTo(dur_, end_pos_, height_, jumps_, ease_func_); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void ActionJumpTo::Init(NodePtr target) | 	void ActionJumpTo::Init(ActorPtr target) | ||||||
| 	{ | 	{ | ||||||
| 		ActionJumpBy::Init(target); | 		ActionJumpBy::Init(target); | ||||||
| 		delta_pos_ = end_pos_ - start_pos_; | 		delta_pos_ = end_pos_ - start_pos_; | ||||||
|  | @ -271,7 +271,7 @@ namespace kiwano | ||||||
| 	{ | 	{ | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void ActionScaleBy::Init(NodePtr target) | 	void ActionScaleBy::Init(ActorPtr target) | ||||||
| 	{ | 	{ | ||||||
| 		if (target) | 		if (target) | ||||||
| 		{ | 		{ | ||||||
|  | @ -280,7 +280,7 @@ namespace kiwano | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void ActionScaleBy::UpdateTween(NodePtr target, float percent) | 	void ActionScaleBy::UpdateTween(ActorPtr target, float percent) | ||||||
| 	{ | 	{ | ||||||
| 		target->SetScale(start_scale_x_ + delta_x_ * percent, start_scale_y_ + delta_y_ * percent); | 		target->SetScale(start_scale_x_ + delta_x_ * percent, start_scale_y_ + delta_y_ * percent); | ||||||
| 	} | 	} | ||||||
|  | @ -314,7 +314,7 @@ namespace kiwano | ||||||
| 		return new (std::nothrow) ActionScaleTo(dur_, end_scale_x_, end_scale_y_, ease_func_); | 		return new (std::nothrow) ActionScaleTo(dur_, end_scale_x_, end_scale_y_, ease_func_); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void ActionScaleTo::Init(NodePtr target) | 	void ActionScaleTo::Init(ActorPtr target) | ||||||
| 	{ | 	{ | ||||||
| 		ActionScaleBy::Init(target); | 		ActionScaleBy::Init(target); | ||||||
| 		delta_x_ = end_scale_x_ - start_scale_x_; | 		delta_x_ = end_scale_x_ - start_scale_x_; | ||||||
|  | @ -334,7 +334,7 @@ namespace kiwano | ||||||
| 	{ | 	{ | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void ActionFadeTo::Init(NodePtr target) | 	void ActionFadeTo::Init(ActorPtr target) | ||||||
| 	{ | 	{ | ||||||
| 		if (target) | 		if (target) | ||||||
| 		{ | 		{ | ||||||
|  | @ -343,7 +343,7 @@ namespace kiwano | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void ActionFadeTo::UpdateTween(NodePtr target, float percent) | 	void ActionFadeTo::UpdateTween(ActorPtr target, float percent) | ||||||
| 	{ | 	{ | ||||||
| 		target->SetOpacity(start_val_ + delta_val_ * percent); | 		target->SetOpacity(start_val_ + delta_val_ * percent); | ||||||
| 	} | 	} | ||||||
|  | @ -375,7 +375,7 @@ namespace kiwano | ||||||
| 	{ | 	{ | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void ActionRotateBy::Init(NodePtr target) | 	void ActionRotateBy::Init(ActorPtr target) | ||||||
| 	{ | 	{ | ||||||
| 		if (target) | 		if (target) | ||||||
| 		{ | 		{ | ||||||
|  | @ -383,7 +383,7 @@ namespace kiwano | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void ActionRotateBy::UpdateTween(NodePtr target, float percent) | 	void ActionRotateBy::UpdateTween(ActorPtr target, float percent) | ||||||
| 	{ | 	{ | ||||||
| 		float rotation = start_val_ + delta_val_ * percent; | 		float rotation = start_val_ + delta_val_ * percent; | ||||||
| 		if (rotation > 360.f) | 		if (rotation > 360.f) | ||||||
|  | @ -413,7 +413,7 @@ namespace kiwano | ||||||
| 		return new (std::nothrow) ActionRotateTo(dur_, end_val_, ease_func_); | 		return new (std::nothrow) ActionRotateTo(dur_, end_val_, ease_func_); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void ActionRotateTo::Init(NodePtr target) | 	void ActionRotateTo::Init(ActorPtr target) | ||||||
| 	{ | 	{ | ||||||
| 		ActionRotateBy::Init(target); | 		ActionRotateBy::Init(target); | ||||||
| 		delta_val_ = end_val_ - start_val_; | 		delta_val_ = end_val_ - start_val_; | ||||||
|  | @ -481,7 +481,7 @@ namespace kiwano | ||||||
| 		return false; | 		return false; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void ActionPath::Init(NodePtr target) | 	void ActionPath::Init(ActorPtr target) | ||||||
| 	{ | 	{ | ||||||
| 		start_pos_ = target->GetPosition(); | 		start_pos_ = target->GetPosition(); | ||||||
| 
 | 
 | ||||||
|  | @ -496,7 +496,7 @@ namespace kiwano | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void ActionPath::UpdateTween(NodePtr target, float percent) | 	void ActionPath::UpdateTween(ActorPtr target, float percent) | ||||||
| 	{ | 	{ | ||||||
| 		float length = GetPathLength() * std::min(std::max((end_ - start_) * percent + start_, 0.f), 1.f); | 		float length = GetPathLength() * std::min(std::max((end_ - start_) * percent + start_, 0.f), 1.f); | ||||||
| 
 | 
 | ||||||
|  | @ -647,13 +647,13 @@ namespace kiwano | ||||||
| 		return new ActionCustom(dur_, tween_func_); | 		return new ActionCustom(dur_, tween_func_); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void ActionCustom::Init(NodePtr target) | 	void ActionCustom::Init(ActorPtr target) | ||||||
| 	{ | 	{ | ||||||
| 		if (!tween_func_) | 		if (!tween_func_) | ||||||
| 			this->Done(); | 			this->Done(); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void ActionCustom::UpdateTween(NodePtr target, float percent) | 	void ActionCustom::UpdateTween(ActorPtr target, float percent) | ||||||
| 	{ | 	{ | ||||||
| 		if (tween_func_) | 		if (tween_func_) | ||||||
| 			tween_func_(target, percent); | 			tween_func_(target, percent); | ||||||
|  |  | ||||||
|  | @ -90,9 +90,9 @@ namespace kiwano | ||||||
| 		void SetDuration(Duration duration); | 		void SetDuration(Duration duration); | ||||||
| 
 | 
 | ||||||
| 	protected: | 	protected: | ||||||
| 		void Update(NodePtr target, Duration dt) override; | 		void Update(ActorPtr target, Duration dt) override; | ||||||
| 
 | 
 | ||||||
| 		virtual void UpdateTween(NodePtr target, float percent) = 0; | 		virtual void UpdateTween(ActorPtr target, float percent) = 0; | ||||||
| 
 | 
 | ||||||
| 	protected: | 	protected: | ||||||
| 		Duration dur_; | 		Duration dur_; | ||||||
|  | @ -118,9 +118,9 @@ namespace kiwano | ||||||
| 		ActionPtr Reverse() const override; | 		ActionPtr Reverse() const override; | ||||||
| 
 | 
 | ||||||
| 	protected: | 	protected: | ||||||
| 		void Init(NodePtr target) override; | 		void Init(ActorPtr target) override; | ||||||
| 
 | 
 | ||||||
| 		void UpdateTween(NodePtr target, float percent) override; | 		void UpdateTween(ActorPtr target, float percent) override; | ||||||
| 
 | 
 | ||||||
| 	protected: | 	protected: | ||||||
| 		Point	start_pos_; | 		Point	start_pos_; | ||||||
|  | @ -151,7 +151,7 @@ namespace kiwano | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 	protected: | 	protected: | ||||||
| 		void Init(NodePtr target) override; | 		void Init(ActorPtr target) override; | ||||||
| 
 | 
 | ||||||
| 	protected: | 	protected: | ||||||
| 		Point end_pos_; | 		Point end_pos_; | ||||||
|  | @ -178,9 +178,9 @@ namespace kiwano | ||||||
| 		ActionPtr Reverse() const override; | 		ActionPtr Reverse() const override; | ||||||
| 
 | 
 | ||||||
| 	protected: | 	protected: | ||||||
| 		void Init(NodePtr target) override; | 		void Init(ActorPtr target) override; | ||||||
| 
 | 
 | ||||||
| 		void UpdateTween(NodePtr target, float percent) override; | 		void UpdateTween(ActorPtr target, float percent) override; | ||||||
| 
 | 
 | ||||||
| 	protected: | 	protected: | ||||||
| 		Point	start_pos_; | 		Point	start_pos_; | ||||||
|  | @ -215,7 +215,7 @@ namespace kiwano | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 	protected: | 	protected: | ||||||
| 		void Init(NodePtr target) override; | 		void Init(ActorPtr target) override; | ||||||
| 
 | 
 | ||||||
| 	protected: | 	protected: | ||||||
| 		Point end_pos_; | 		Point end_pos_; | ||||||
|  | @ -247,9 +247,9 @@ namespace kiwano | ||||||
| 		ActionPtr Reverse() const override; | 		ActionPtr Reverse() const override; | ||||||
| 
 | 
 | ||||||
| 	protected: | 	protected: | ||||||
| 		void Init(NodePtr target) override; | 		void Init(ActorPtr target) override; | ||||||
| 
 | 
 | ||||||
| 		void UpdateTween(NodePtr target, float percent) override; | 		void UpdateTween(ActorPtr target, float percent) override; | ||||||
| 
 | 
 | ||||||
| 	protected: | 	protected: | ||||||
| 		float	start_scale_x_; | 		float	start_scale_x_; | ||||||
|  | @ -288,7 +288,7 @@ namespace kiwano | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 	protected: | 	protected: | ||||||
| 		void Init(NodePtr target) override; | 		void Init(ActorPtr target) override; | ||||||
| 
 | 
 | ||||||
| 	protected: | 	protected: | ||||||
| 		float	end_scale_x_; | 		float	end_scale_x_; | ||||||
|  | @ -318,9 +318,9 @@ namespace kiwano | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 	protected: | 	protected: | ||||||
| 		void Init(NodePtr target) override; | 		void Init(ActorPtr target) override; | ||||||
| 
 | 
 | ||||||
| 		void UpdateTween(NodePtr target, float percent) override; | 		void UpdateTween(ActorPtr target, float percent) override; | ||||||
| 
 | 
 | ||||||
| 	protected: | 	protected: | ||||||
| 		float start_val_; | 		float start_val_; | ||||||
|  | @ -373,9 +373,9 @@ namespace kiwano | ||||||
| 		ActionPtr Reverse() const override; | 		ActionPtr Reverse() const override; | ||||||
| 
 | 
 | ||||||
| 	protected: | 	protected: | ||||||
| 		void Init(NodePtr target) override; | 		void Init(ActorPtr target) override; | ||||||
| 
 | 
 | ||||||
| 		void UpdateTween(NodePtr target, float percent) override; | 		void UpdateTween(ActorPtr target, float percent) override; | ||||||
| 
 | 
 | ||||||
| 	protected: | 	protected: | ||||||
| 		float start_val_; | 		float start_val_; | ||||||
|  | @ -405,7 +405,7 @@ namespace kiwano | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 	protected: | 	protected: | ||||||
| 		void Init(NodePtr target) override; | 		void Init(ActorPtr target) override; | ||||||
| 
 | 
 | ||||||
| 	protected: | 	protected: | ||||||
| 		float end_val_; | 		float end_val_; | ||||||
|  | @ -481,9 +481,9 @@ namespace kiwano | ||||||
| 		inline void SetGeometry(ComPtr<ID2D1PathGeometry> geo)	{ geo_ = geo; } | 		inline void SetGeometry(ComPtr<ID2D1PathGeometry> geo)	{ geo_ = geo; } | ||||||
| 
 | 
 | ||||||
| 	protected: | 	protected: | ||||||
| 		void Init(NodePtr target) override; | 		void Init(ActorPtr target) override; | ||||||
| 
 | 
 | ||||||
| 		void UpdateTween(NodePtr target, float percent) override; | 		void UpdateTween(ActorPtr target, float percent) override; | ||||||
| 
 | 
 | ||||||
| 	protected: | 	protected: | ||||||
| 		bool	path_beginning_; | 		bool	path_beginning_; | ||||||
|  | @ -502,7 +502,7 @@ namespace kiwano | ||||||
| 		: public ActionTween | 		: public ActionTween | ||||||
| 	{ | 	{ | ||||||
| 	public: | 	public: | ||||||
| 		using TweenFunc = Closure<void(NodePtr, float)>; | 		using TweenFunc = Closure<void(ActorPtr, float)>; | ||||||
| 
 | 
 | ||||||
| 		ActionCustom( | 		ActionCustom( | ||||||
| 			Duration duration,		/* ³ÖÐøÊ±³¤ */ | 			Duration duration,		/* ³ÖÐøÊ±³¤ */ | ||||||
|  | @ -521,9 +521,9 @@ namespace kiwano | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 	protected: | 	protected: | ||||||
| 		void Init(NodePtr target) override; | 		void Init(ActorPtr target) override; | ||||||
| 
 | 
 | ||||||
| 		void UpdateTween(NodePtr target, float percent) override; | 		void UpdateTween(ActorPtr target, float percent) override; | ||||||
| 
 | 
 | ||||||
| 	protected: | 	protected: | ||||||
| 		TweenFunc tween_func_; | 		TweenFunc tween_func_; | ||||||
|  |  | ||||||
|  | @ -18,9 +18,9 @@ | ||||||
| // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 | ||||||
| // THE SOFTWARE.
 | // THE SOFTWARE.
 | ||||||
| 
 | 
 | ||||||
| #include "Node.h" | #include "Actor.h" | ||||||
| #include "Action.h" | #include "Action.h" | ||||||
| #include "Scene.h" | #include "Stage.h" | ||||||
| #include "../base/logs.h" | #include "../base/logs.h" | ||||||
| #include "../renderer/render.h" | #include "../renderer/render.h" | ||||||
| 
 | 
 | ||||||
|  | @ -32,13 +32,13 @@ namespace kiwano | ||||||
| 		float default_anchor_y = 0.f; | 		float default_anchor_y = 0.f; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void Node::SetDefaultAnchor(float anchor_x, float anchor_y) | 	void Actor::SetDefaultAnchor(float anchor_x, float anchor_y) | ||||||
| 	{ | 	{ | ||||||
| 		default_anchor_x = anchor_x; | 		default_anchor_x = anchor_x; | ||||||
| 		default_anchor_y = anchor_y; | 		default_anchor_y = anchor_y; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	Node::Node() | 	Actor::Actor() | ||||||
| 		: visible_(true) | 		: visible_(true) | ||||||
| 		, update_pausing_(false) | 		, update_pausing_(false) | ||||||
| 		, hover_(false) | 		, hover_(false) | ||||||
|  | @ -50,7 +50,7 @@ namespace kiwano | ||||||
| 		, show_border_(false) | 		, show_border_(false) | ||||||
| 		, is_fast_transform_(true) | 		, is_fast_transform_(true) | ||||||
| 		, parent_(nullptr) | 		, parent_(nullptr) | ||||||
| 		, scene_(nullptr) | 		, stage_(nullptr) | ||||||
| 		, hash_name_(0) | 		, hash_name_(0) | ||||||
| 		, z_order_(0) | 		, z_order_(0) | ||||||
| 		, opacity_(1.f) | 		, opacity_(1.f) | ||||||
|  | @ -59,7 +59,7 @@ namespace kiwano | ||||||
| 	{ | 	{ | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void Node::Update(Duration dt) | 	void Actor::Update(Duration dt) | ||||||
| 	{ | 	{ | ||||||
| 		if (!update_pausing_) | 		if (!update_pausing_) | ||||||
| 		{ | 		{ | ||||||
|  | @ -74,7 +74,7 @@ namespace kiwano | ||||||
| 
 | 
 | ||||||
| 		if (!children_.IsEmpty()) | 		if (!children_.IsEmpty()) | ||||||
| 		{ | 		{ | ||||||
| 			NodePtr next; | 			ActorPtr next; | ||||||
| 			for (auto child = children_.First(); child; child = next) | 			for (auto child = children_.First(); child; child = next) | ||||||
| 			{ | 			{ | ||||||
| 				next = child->NextItem(); | 				next = child->NextItem(); | ||||||
|  | @ -83,7 +83,7 @@ namespace kiwano | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void Node::Render() | 	void Actor::Render() | ||||||
| 	{ | 	{ | ||||||
| 		if (!visible_) | 		if (!visible_) | ||||||
| 			return; | 			return; | ||||||
|  | @ -98,7 +98,7 @@ namespace kiwano | ||||||
| 		else | 		else | ||||||
| 		{ | 		{ | ||||||
| 			// render children those are less than 0 in Z-Order
 | 			// render children those are less than 0 in Z-Order
 | ||||||
| 			Node* child = children_.First().Get(); | 			Actor* child = children_.First().Get(); | ||||||
| 			while (child) | 			while (child) | ||||||
| 			{ | 			{ | ||||||
| 				if (child->GetZOrder() >= 0) | 				if (child->GetZOrder() >= 0) | ||||||
|  | @ -119,7 +119,7 @@ namespace kiwano | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void Node::RenderBorder() | 	void Actor::RenderBorder() | ||||||
| 	{ | 	{ | ||||||
| 		if (show_border_) | 		if (show_border_) | ||||||
| 		{ | 		{ | ||||||
|  | @ -137,12 +137,12 @@ namespace kiwano | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void Node::Dispatch(Event& evt) | 	void Actor::Dispatch(Event& evt) | ||||||
| 	{ | 	{ | ||||||
| 		if (!visible_) | 		if (!visible_) | ||||||
| 			return; | 			return; | ||||||
| 
 | 
 | ||||||
| 		NodePtr prev; | 		ActorPtr prev; | ||||||
| 		for (auto child = children_.Last(); child; child = prev) | 		for (auto child = children_.Last(); child; child = prev) | ||||||
| 		{ | 		{ | ||||||
| 			prev = child->PrevItem(); | 			prev = child->PrevItem(); | ||||||
|  | @ -198,13 +198,13 @@ namespace kiwano | ||||||
| 		EventDispatcher::Dispatch(evt); | 		EventDispatcher::Dispatch(evt); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	Matrix const & Node::GetTransformMatrix()  const | 	Matrix const & Actor::GetTransformMatrix()  const | ||||||
| 	{ | 	{ | ||||||
| 		UpdateTransform(); | 		UpdateTransform(); | ||||||
| 		return transform_matrix_; | 		return transform_matrix_; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	Matrix const & Node::GetTransformInverseMatrix()  const | 	Matrix const & Actor::GetTransformInverseMatrix()  const | ||||||
| 	{ | 	{ | ||||||
| 		UpdateTransform(); | 		UpdateTransform(); | ||||||
| 		if (dirty_transform_inverse_) | 		if (dirty_transform_inverse_) | ||||||
|  | @ -215,7 +215,7 @@ namespace kiwano | ||||||
| 		return transform_matrix_inverse_; | 		return transform_matrix_inverse_; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void Node::UpdateTransform() const | 	void Actor::UpdateTransform() const | ||||||
| 	{ | 	{ | ||||||
| 		if (!dirty_transform_) | 		if (!dirty_transform_) | ||||||
| 			return; | 			return; | ||||||
|  | @ -246,11 +246,11 @@ namespace kiwano | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		// update children's transform
 | 		// update children's transform
 | ||||||
| 		for (Node* child = children_.First().Get(); child; child = child->NextItem().Get()) | 		for (Actor* child = children_.First().Get(); child; child = child->NextItem().Get()) | ||||||
| 			child->dirty_transform_ = true; | 			child->dirty_transform_ = true; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void Node::UpdateOpacity() | 	void Actor::UpdateOpacity() | ||||||
| 	{ | 	{ | ||||||
| 		if (parent_ && parent_->IsCascadeOpacityEnabled()) | 		if (parent_ && parent_->IsCascadeOpacityEnabled()) | ||||||
| 		{ | 		{ | ||||||
|  | @ -261,33 +261,33 @@ namespace kiwano | ||||||
| 			displayed_opacity_ = opacity_; | 			displayed_opacity_ = opacity_; | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		for (Node* child = children_.First().Get(); child; child = child->NextItem().Get()) | 		for (Actor* child = children_.First().Get(); child; child = child->NextItem().Get()) | ||||||
| 		{ | 		{ | ||||||
| 			child->UpdateOpacity(); | 			child->UpdateOpacity(); | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void Node::SetScene(Scene* scene) | 	void Actor::SetStage(Stage* scene) | ||||||
| 	{ | 	{ | ||||||
| 		if (scene && scene_ != scene) | 		if (scene && stage_ != scene) | ||||||
| 		{ | 		{ | ||||||
| 			scene_ = scene; | 			stage_ = scene; | ||||||
| 			for (Node* child = children_.First().Get(); child; child = child->NextItem().Get()) | 			for (Actor* child = children_.First().Get(); child; child = child->NextItem().Get()) | ||||||
| 			{ | 			{ | ||||||
| 				child->scene_ = scene; | 				child->stage_ = scene; | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void Node::Reorder() | 	void Actor::Reorder() | ||||||
| 	{ | 	{ | ||||||
| 		if (parent_) | 		if (parent_) | ||||||
| 		{ | 		{ | ||||||
| 			NodePtr me = this; | 			ActorPtr me = this; | ||||||
| 
 | 
 | ||||||
| 			parent_->children_.Remove(me); | 			parent_->children_.Remove(me); | ||||||
| 
 | 
 | ||||||
| 			Node* sibling = parent_->children_.Last().Get(); | 			Actor* sibling = parent_->children_.Last().Get(); | ||||||
| 
 | 
 | ||||||
| 			if (sibling && sibling->GetZOrder() > z_order_) | 			if (sibling && sibling->GetZOrder() > z_order_) | ||||||
| 			{ | 			{ | ||||||
|  | @ -311,7 +311,7 @@ namespace kiwano | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void Node::SetZOrder(int zorder) | 	void Actor::SetZOrder(int zorder) | ||||||
| 	{ | 	{ | ||||||
| 		if (z_order_ != zorder) | 		if (z_order_ != zorder) | ||||||
| 		{ | 		{ | ||||||
|  | @ -320,7 +320,7 @@ namespace kiwano | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void Node::SetOpacity(float opacity) | 	void Actor::SetOpacity(float opacity) | ||||||
| 	{ | 	{ | ||||||
| 		if (opacity_ == opacity) | 		if (opacity_ == opacity) | ||||||
| 			return; | 			return; | ||||||
|  | @ -329,7 +329,7 @@ namespace kiwano | ||||||
| 		UpdateOpacity(); | 		UpdateOpacity(); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void Node::SetCascadeOpacityEnabled(bool enabled) | 	void Actor::SetCascadeOpacityEnabled(bool enabled) | ||||||
| 	{ | 	{ | ||||||
| 		if (cascade_opacity_ == enabled) | 		if (cascade_opacity_ == enabled) | ||||||
| 			return; | 			return; | ||||||
|  | @ -338,17 +338,17 @@ namespace kiwano | ||||||
| 		UpdateOpacity(); | 		UpdateOpacity(); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void Node::SetAnchorX(float anchor_x) | 	void Actor::SetAnchorX(float anchor_x) | ||||||
| 	{ | 	{ | ||||||
| 		this->SetAnchor(anchor_x, anchor_.y); | 		this->SetAnchor(anchor_x, anchor_.y); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void Node::SetAnchorY(float anchor_y) | 	void Actor::SetAnchorY(float anchor_y) | ||||||
| 	{ | 	{ | ||||||
| 		this->SetAnchor(anchor_.x, anchor_y); | 		this->SetAnchor(anchor_.x, anchor_y); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void Node::SetAnchor(float anchor_x, float anchor_y) | 	void Actor::SetAnchor(float anchor_x, float anchor_y) | ||||||
| 	{ | 	{ | ||||||
| 		if (anchor_.x == anchor_x && anchor_.y == anchor_y) | 		if (anchor_.x == anchor_x && anchor_.y == anchor_y) | ||||||
| 			return; | 			return; | ||||||
|  | @ -358,27 +358,27 @@ namespace kiwano | ||||||
| 		dirty_transform_ = true; | 		dirty_transform_ = true; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void Node::SetAnchor(Point const& anchor) | 	void Actor::SetAnchor(Point const& anchor) | ||||||
| 	{ | 	{ | ||||||
| 		this->SetAnchor(anchor.x, anchor.y); | 		this->SetAnchor(anchor.x, anchor.y); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void Node::SetWidth(float width) | 	void Actor::SetWidth(float width) | ||||||
| 	{ | 	{ | ||||||
| 		this->SetSize(width, size_.y); | 		this->SetSize(width, size_.y); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void Node::SetHeight(float height) | 	void Actor::SetHeight(float height) | ||||||
| 	{ | 	{ | ||||||
| 		this->SetSize(size_.x, height); | 		this->SetSize(size_.x, height); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void Node::SetSize(const Size& size) | 	void Actor::SetSize(const Size& size) | ||||||
| 	{ | 	{ | ||||||
| 		this->SetSize(size.x, size.y); | 		this->SetSize(size.x, size.y); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void Node::SetSize(float width, float height) | 	void Actor::SetSize(float width, float height) | ||||||
| 	{ | 	{ | ||||||
| 		if (size_.x == width && size_.y == height) | 		if (size_.x == width && size_.y == height) | ||||||
| 			return; | 			return; | ||||||
|  | @ -388,19 +388,19 @@ namespace kiwano | ||||||
| 		dirty_transform_ = true; | 		dirty_transform_ = true; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void Node::SetTransform(Transform const& transform) | 	void Actor::SetTransform(Transform const& transform) | ||||||
| 	{ | 	{ | ||||||
| 		transform_ = transform; | 		transform_ = transform; | ||||||
| 		dirty_transform_ = true; | 		dirty_transform_ = true; | ||||||
| 		is_fast_transform_ = false; | 		is_fast_transform_ = false; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void Node::SetVisible(bool val) | 	void Actor::SetVisible(bool val) | ||||||
| 	{ | 	{ | ||||||
| 		visible_ = val; | 		visible_ = val; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void Node::SetName(String const& name) | 	void Actor::SetName(String const& name) | ||||||
| 	{ | 	{ | ||||||
| 		if (!IsName(name)) | 		if (!IsName(name)) | ||||||
| 		{ | 		{ | ||||||
|  | @ -409,22 +409,22 @@ namespace kiwano | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void Node::SetPositionX(float x) | 	void Actor::SetPositionX(float x) | ||||||
| 	{ | 	{ | ||||||
| 		this->SetPosition(x, transform_.position.y); | 		this->SetPosition(x, transform_.position.y); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void Node::SetPositionY(float y) | 	void Actor::SetPositionY(float y) | ||||||
| 	{ | 	{ | ||||||
| 		this->SetPosition(transform_.position.x, y); | 		this->SetPosition(transform_.position.x, y); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void Node::SetPosition(const Point & p) | 	void Actor::SetPosition(const Point & p) | ||||||
| 	{ | 	{ | ||||||
| 		this->SetPosition(p.x, p.y); | 		this->SetPosition(p.x, p.y); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void Node::SetPosition(float x, float y) | 	void Actor::SetPosition(float x, float y) | ||||||
| 	{ | 	{ | ||||||
| 		if (transform_.position.x == x && transform_.position.y == y) | 		if (transform_.position.x == x && transform_.position.y == y) | ||||||
| 			return; | 			return; | ||||||
|  | @ -434,32 +434,32 @@ namespace kiwano | ||||||
| 		dirty_transform_ = true; | 		dirty_transform_ = true; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void Node::Move(float x, float y) | 	void Actor::Move(float x, float y) | ||||||
| 	{ | 	{ | ||||||
| 		this->SetPosition(transform_.position.x + x, transform_.position.y + y); | 		this->SetPosition(transform_.position.x + x, transform_.position.y + y); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void Node::Move(const Point & v) | 	void Actor::Move(const Point & v) | ||||||
| 	{ | 	{ | ||||||
| 		this->Move(v.x, v.y); | 		this->Move(v.x, v.y); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void Node::SetScaleX(float scale_x) | 	void Actor::SetScaleX(float scale_x) | ||||||
| 	{ | 	{ | ||||||
| 		this->SetScale(scale_x, transform_.scale.y); | 		this->SetScale(scale_x, transform_.scale.y); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void Node::SetScaleY(float scale_y) | 	void Actor::SetScaleY(float scale_y) | ||||||
| 	{ | 	{ | ||||||
| 		this->SetScale(transform_.scale.x, scale_y); | 		this->SetScale(transform_.scale.x, scale_y); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void Node::SetScale(float scale) | 	void Actor::SetScale(float scale) | ||||||
| 	{ | 	{ | ||||||
| 		this->SetScale(scale, scale); | 		this->SetScale(scale, scale); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void Node::SetScale(float scale_x, float scale_y) | 	void Actor::SetScale(float scale_x, float scale_y) | ||||||
| 	{ | 	{ | ||||||
| 		if (transform_.scale.x == scale_x && transform_.scale.y == scale_y) | 		if (transform_.scale.x == scale_x && transform_.scale.y == scale_y) | ||||||
| 			return; | 			return; | ||||||
|  | @ -470,22 +470,22 @@ namespace kiwano | ||||||
| 		is_fast_transform_ = false; | 		is_fast_transform_ = false; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void Node::SetScale(Point const& scale) | 	void Actor::SetScale(Point const& scale) | ||||||
| 	{ | 	{ | ||||||
| 		this->SetScale(scale.x, scale.y); | 		this->SetScale(scale.x, scale.y); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void Node::SetSkewX(float skew_x) | 	void Actor::SetSkewX(float skew_x) | ||||||
| 	{ | 	{ | ||||||
| 		this->SetSkew(skew_x, transform_.skew.y); | 		this->SetSkew(skew_x, transform_.skew.y); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void Node::SetSkewY(float skew_y) | 	void Actor::SetSkewY(float skew_y) | ||||||
| 	{ | 	{ | ||||||
| 		this->SetSkew(transform_.skew.x, skew_y); | 		this->SetSkew(transform_.skew.x, skew_y); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void Node::SetSkew(float skew_x, float skew_y) | 	void Actor::SetSkew(float skew_x, float skew_y) | ||||||
| 	{ | 	{ | ||||||
| 		if (transform_.skew.x == skew_x && transform_.skew.y == skew_y) | 		if (transform_.skew.x == skew_x && transform_.skew.y == skew_y) | ||||||
| 			return; | 			return; | ||||||
|  | @ -496,12 +496,12 @@ namespace kiwano | ||||||
| 		is_fast_transform_ = false; | 		is_fast_transform_ = false; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void Node::SetSkew(Point const& skew) | 	void Actor::SetSkew(Point const& skew) | ||||||
| 	{ | 	{ | ||||||
| 		this->SetSkew(skew.x, skew.y); | 		this->SetSkew(skew.x, skew.y); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void Node::SetRotation(float angle) | 	void Actor::SetRotation(float angle) | ||||||
| 	{ | 	{ | ||||||
| 		if (transform_.rotation == angle) | 		if (transform_.rotation == angle) | ||||||
| 			return; | 			return; | ||||||
|  | @ -511,9 +511,9 @@ namespace kiwano | ||||||
| 		is_fast_transform_ = false; | 		is_fast_transform_ = false; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void Node::AddChild(NodePtr child) | 	void Actor::AddChild(ActorPtr child) | ||||||
| 	{ | 	{ | ||||||
| 		KGE_ASSERT(child && "Node::AddChild failed, NULL pointer exception"); | 		KGE_ASSERT(child && "Actor::AddChild failed, NULL pointer exception"); | ||||||
| 
 | 
 | ||||||
| 		if (child) | 		if (child) | ||||||
| 		{ | 		{ | ||||||
|  | @ -522,7 +522,7 @@ namespace kiwano | ||||||
| 			if (child->parent_) | 			if (child->parent_) | ||||||
| 				KGE_ERROR_LOG(L"The node to be added already has a parent"); | 				KGE_ERROR_LOG(L"The node to be added already has a parent"); | ||||||
| 
 | 
 | ||||||
| 			for (Node* parent = parent_; parent; parent = parent->parent_) | 			for (Actor* parent = parent_; parent; parent = parent->parent_) | ||||||
| 				if (parent == child) | 				if (parent == child) | ||||||
| 					KGE_ERROR_LOG(L"A node cannot be its own parent"); | 					KGE_ERROR_LOG(L"A node cannot be its own parent"); | ||||||
| 
 | 
 | ||||||
|  | @ -530,14 +530,14 @@ namespace kiwano | ||||||
| 
 | 
 | ||||||
| 			children_.PushBack(child); | 			children_.PushBack(child); | ||||||
| 			child->parent_ = this; | 			child->parent_ = this; | ||||||
| 			child->SetScene(this->scene_); | 			child->SetStage(this->stage_); | ||||||
| 			child->dirty_transform_ = true; | 			child->dirty_transform_ = true; | ||||||
| 			child->UpdateOpacity(); | 			child->UpdateOpacity(); | ||||||
| 			child->Reorder(); | 			child->Reorder(); | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void Node::AddChildren(Array<NodePtr> const& children) | 	void Actor::AddChildren(Array<ActorPtr> const& children) | ||||||
| 	{ | 	{ | ||||||
| 		for (const auto& node : children) | 		for (const auto& node : children) | ||||||
| 		{ | 		{ | ||||||
|  | @ -545,22 +545,22 @@ namespace kiwano | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	Rect Node::GetBounds() const | 	Rect Actor::GetBounds() const | ||||||
| 	{ | 	{ | ||||||
| 		return Rect(Point{}, size_); | 		return Rect(Point{}, size_); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	Rect Node::GetBoundingBox() const | 	Rect Actor::GetBoundingBox() const | ||||||
| 	{ | 	{ | ||||||
| 		return GetTransformMatrix().Transform(GetBounds()); | 		return GetTransformMatrix().Transform(GetBounds()); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	Array<NodePtr> Node::GetChildren(String const& name) const | 	Array<ActorPtr> Actor::GetChildren(String const& name) const | ||||||
| 	{ | 	{ | ||||||
| 		Array<NodePtr> children; | 		Array<ActorPtr> children; | ||||||
| 		size_t hash_code = std::hash<String>{}(name); | 		size_t hash_code = std::hash<String>{}(name); | ||||||
| 
 | 
 | ||||||
| 		for (Node* child = children_.First().Get(); child; child = child->NextItem().Get()) | 		for (Actor* child = children_.First().Get(); child; child = child->NextItem().Get()) | ||||||
| 		{ | 		{ | ||||||
| 			if (child->hash_name_ == hash_code && child->IsName(name)) | 			if (child->hash_name_ == hash_code && child->IsName(name)) | ||||||
| 			{ | 			{ | ||||||
|  | @ -570,11 +570,11 @@ namespace kiwano | ||||||
| 		return children; | 		return children; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	NodePtr Node::GetChild(String const& name) const | 	ActorPtr Actor::GetChild(String const& name) const | ||||||
| 	{ | 	{ | ||||||
| 		size_t hash_code = std::hash<String>{}(name); | 		size_t hash_code = std::hash<String>{}(name); | ||||||
| 
 | 
 | ||||||
| 		for (Node* child = children_.First().Get(); child; child = child->NextItem().Get()) | 		for (Actor* child = children_.First().Get(); child; child = child->NextItem().Get()) | ||||||
| 		{ | 		{ | ||||||
| 			if (child->hash_name_ == hash_code && child->IsName(name)) | 			if (child->hash_name_ == hash_code && child->IsName(name)) | ||||||
| 			{ | 			{ | ||||||
|  | @ -584,12 +584,12 @@ namespace kiwano | ||||||
| 		return nullptr; | 		return nullptr; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	Node::Children const & Node::GetChildren() const | 	Actor::Children const & Actor::GetChildren() const | ||||||
| 	{ | 	{ | ||||||
| 		return children_; | 		return children_; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void Node::RemoveFromParent() | 	void Actor::RemoveFromParent() | ||||||
| 	{ | 	{ | ||||||
| 		if (parent_) | 		if (parent_) | ||||||
| 		{ | 		{ | ||||||
|  | @ -597,14 +597,14 @@ namespace kiwano | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void Node::RemoveChild(NodePtr child) | 	void Actor::RemoveChild(ActorPtr child) | ||||||
| 	{ | 	{ | ||||||
| 		RemoveChild(child.Get()); | 		RemoveChild(child.Get()); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void Node::RemoveChild(Node * child) | 	void Actor::RemoveChild(Actor * child) | ||||||
| 	{ | 	{ | ||||||
| 		KGE_ASSERT(child && "Node::RemoveChild failed, NULL pointer exception"); | 		KGE_ASSERT(child && "Actor::RemoveChild failed, NULL pointer exception"); | ||||||
| 
 | 
 | ||||||
| 		if (children_.IsEmpty()) | 		if (children_.IsEmpty()) | ||||||
| 			return; | 			return; | ||||||
|  | @ -612,12 +612,12 @@ namespace kiwano | ||||||
| 		if (child) | 		if (child) | ||||||
| 		{ | 		{ | ||||||
| 			child->parent_ = nullptr; | 			child->parent_ = nullptr; | ||||||
| 			if (child->scene_) child->SetScene(nullptr); | 			if (child->stage_) child->SetStage(nullptr); | ||||||
| 			children_.Remove(NodePtr(child)); | 			children_.Remove(ActorPtr(child)); | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void Node::RemoveChildren(String const& child_name) | 	void Actor::RemoveChildren(String const& child_name) | ||||||
| 	{ | 	{ | ||||||
| 		if (children_.IsEmpty()) | 		if (children_.IsEmpty()) | ||||||
| 		{ | 		{ | ||||||
|  | @ -626,8 +626,8 @@ namespace kiwano | ||||||
| 
 | 
 | ||||||
| 		size_t hash_code = std::hash<String>{}(child_name); | 		size_t hash_code = std::hash<String>{}(child_name); | ||||||
| 
 | 
 | ||||||
| 		Node* next; | 		Actor* next; | ||||||
| 		for (Node* child = children_.First().Get(); child; child = next) | 		for (Actor* child = children_.First().Get(); child; child = next) | ||||||
| 		{ | 		{ | ||||||
| 			next = child->NextItem().Get(); | 			next = child->NextItem().Get(); | ||||||
| 
 | 
 | ||||||
|  | @ -638,17 +638,17 @@ namespace kiwano | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void Node::RemoveAllChildren() | 	void Actor::RemoveAllChildren() | ||||||
| 	{ | 	{ | ||||||
| 		children_.Clear(); | 		children_.Clear(); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void Node::SetResponsible(bool enable) | 	void Actor::SetResponsible(bool enable) | ||||||
| 	{ | 	{ | ||||||
| 		responsible_ = enable; | 		responsible_ = enable; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	bool Node::ContainsPoint(const Point& point) const | 	bool Actor::ContainsPoint(const Point& point) const | ||||||
| 	{ | 	{ | ||||||
| 		if (size_.x == 0.f || size_.y == 0.f) | 		if (size_.x == 0.f || size_.y == 0.f) | ||||||
| 			return false; | 			return false; | ||||||
|  | @ -27,30 +27,30 @@ | ||||||
| 
 | 
 | ||||||
| namespace kiwano | namespace kiwano | ||||||
| { | { | ||||||
| 	class Stage; | 	class Director; | ||||||
| 
 | 
 | ||||||
| 	// 节点
 | 	// 角色
 | ||||||
| 	class KGE_API Node | 	class KGE_API Actor | ||||||
| 		: public Object | 		: public Object | ||||||
| 		, public TimerManager | 		, public TimerManager | ||||||
| 		, public ActionManager | 		, public ActionManager | ||||||
| 		, public EventDispatcher | 		, public EventDispatcher | ||||||
| 		, public IntrusiveListItem<NodePtr> | 		, public IntrusiveListItem<ActorPtr> | ||||||
| 	{ | 	{ | ||||||
| 		friend class Stage; | 		friend class Director; | ||||||
| 		friend class Transition; | 		friend class Transition; | ||||||
| 		friend class IntrusiveList<NodePtr>; | 		friend class IntrusiveList<ActorPtr>; | ||||||
| 
 | 
 | ||||||
| 		using Children = IntrusiveList<NodePtr>; | 		using Children = IntrusiveList<ActorPtr>; | ||||||
| 		using UpdateCallback = Closure<void(Duration)>; | 		using UpdateCallback = Closure<void(Duration)>; | ||||||
| 
 | 
 | ||||||
| 	public: | 	public: | ||||||
| 		Node(); | 		Actor(); | ||||||
| 
 | 
 | ||||||
| 		// 更新节点
 | 		// 更新角色
 | ||||||
| 		virtual void OnUpdate(Duration dt) { KGE_UNUSED(dt); } | 		virtual void OnUpdate(Duration dt) { KGE_UNUSED(dt); } | ||||||
| 
 | 
 | ||||||
| 		// 渲染节点
 | 		// 渲染角色
 | ||||||
| 		virtual void OnRender() {} | 		virtual void OnRender() {} | ||||||
| 
 | 
 | ||||||
| 		// 获取显示状态
 | 		// 获取显示状态
 | ||||||
|  | @ -146,11 +146,11 @@ namespace kiwano | ||||||
| 		// 获取二维变换的逆矩阵
 | 		// 获取二维变换的逆矩阵
 | ||||||
| 		Matrix const& GetTransformInverseMatrix()  const; | 		Matrix const& GetTransformInverseMatrix()  const; | ||||||
| 
 | 
 | ||||||
| 		// 获取父节点
 | 		// 获取父角色
 | ||||||
| 		inline Node* GetParent() const { return parent_; } | 		inline Actor* GetParent() const { return parent_; } | ||||||
| 
 | 
 | ||||||
| 		// 获取所在场景
 | 		// 获取所在场景
 | ||||||
| 		inline Scene* GetScene() const { return scene_; } | 		inline Stage* GetStage() const { return stage_; } | ||||||
| 
 | 
 | ||||||
| 		// 设置是否显示
 | 		// 设置是否显示
 | ||||||
| 		void SetVisible( | 		void SetVisible( | ||||||
|  | @ -330,62 +330,62 @@ namespace kiwano | ||||||
| 			bool enable | 			bool enable | ||||||
| 		); | 		); | ||||||
| 
 | 
 | ||||||
| 		// 判断点是否在节点内
 | 		// 判断点是否在角色内
 | ||||||
| 		bool ContainsPoint( | 		bool ContainsPoint( | ||||||
| 			const Point& point | 			const Point& point | ||||||
| 		)  const; | 		)  const; | ||||||
| 
 | 
 | ||||||
| 		// 添加子节点
 | 		// 添加子角色
 | ||||||
| 		void AddChild( | 		void AddChild( | ||||||
| 			NodePtr child | 			ActorPtr child | ||||||
| 		); | 		); | ||||||
| 
 | 
 | ||||||
| 		// 添加多个子节点
 | 		// 添加多个子角色
 | ||||||
| 		void AddChildren( | 		void AddChildren( | ||||||
| 			Array<NodePtr> const& children | 			Array<ActorPtr> const& children | ||||||
| 		); | 		); | ||||||
| 
 | 
 | ||||||
| 		// 获取所有名称相同的子节点
 | 		// 获取所有名称相同的子角色
 | ||||||
| 		Array<NodePtr> GetChildren( | 		Array<ActorPtr> GetChildren( | ||||||
| 			String const& name | 			String const& name | ||||||
| 		) const; | 		) const; | ||||||
| 
 | 
 | ||||||
| 		// 获取名称相同的子节点
 | 		// 获取名称相同的子角色
 | ||||||
| 		NodePtr GetChild( | 		ActorPtr GetChild( | ||||||
| 			String const& name | 			String const& name | ||||||
| 		) const; | 		) const; | ||||||
| 
 | 
 | ||||||
| 		// 获取全部子节点
 | 		// 获取全部子角色
 | ||||||
| 		Children const& GetChildren() const; | 		Children const& GetChildren() const; | ||||||
| 
 | 
 | ||||||
| 		// 移除子节点
 | 		// 移除子角色
 | ||||||
| 		void RemoveChild( | 		void RemoveChild( | ||||||
| 			NodePtr child | 			ActorPtr child | ||||||
| 		); | 		); | ||||||
| 
 | 
 | ||||||
| 		// 移除子节点
 | 		// 移除子角色
 | ||||||
| 		void RemoveChild( | 		void RemoveChild( | ||||||
| 			Node* child | 			Actor* child | ||||||
| 		); | 		); | ||||||
| 
 | 
 | ||||||
| 		// 移除所有名称相同的子节点
 | 		// 移除所有名称相同的子角色
 | ||||||
| 		void RemoveChildren( | 		void RemoveChildren( | ||||||
| 			String const& child_name | 			String const& child_name | ||||||
| 		); | 		); | ||||||
| 
 | 
 | ||||||
| 		// 移除所有节点
 | 		// 移除所有角色
 | ||||||
| 		void RemoveAllChildren(); | 		void RemoveAllChildren(); | ||||||
| 
 | 
 | ||||||
| 		// 从父节点移除
 | 		// 从父角色移除
 | ||||||
| 		void RemoveFromParent(); | 		void RemoveFromParent(); | ||||||
| 
 | 
 | ||||||
| 		// 暂停节点更新
 | 		// 暂停角色更新
 | ||||||
| 		inline void PauseUpdating()									{ update_pausing_ = true; } | 		inline void PauseUpdating()									{ update_pausing_ = true; } | ||||||
| 
 | 
 | ||||||
| 		// 继续节点更新
 | 		// 继续角色更新
 | ||||||
| 		inline void ResumeUpdating()								{ update_pausing_ = false; } | 		inline void ResumeUpdating()								{ update_pausing_ = false; } | ||||||
| 
 | 
 | ||||||
| 		// 节点更新是否暂停
 | 		// 角色更新是否暂停
 | ||||||
| 		inline bool IsUpdatePausing() const							{ return update_pausing_; } | 		inline bool IsUpdatePausing() const							{ return update_pausing_; } | ||||||
| 
 | 
 | ||||||
| 		// 设置更新时的回调函数
 | 		// 设置更新时的回调函数
 | ||||||
|  | @ -394,7 +394,7 @@ namespace kiwano | ||||||
| 		// 获取更新时的回调函数
 | 		// 获取更新时的回调函数
 | ||||||
| 		inline UpdateCallback GetCallbackOnUpdate() const			{ return cb_update_; } | 		inline UpdateCallback GetCallbackOnUpdate() const			{ return cb_update_; } | ||||||
| 
 | 
 | ||||||
| 		// 渲染节点边界
 | 		// 渲染角色边界
 | ||||||
| 		inline void ShowBorder(bool show)							{ show_border_ = show; } | 		inline void ShowBorder(bool show)							{ show_border_ = show; } | ||||||
| 
 | 
 | ||||||
| 		// 设置默认锚点
 | 		// 设置默认锚点
 | ||||||
|  | @ -422,7 +422,7 @@ namespace kiwano | ||||||
| 
 | 
 | ||||||
| 		void Reorder(); | 		void Reorder(); | ||||||
| 
 | 
 | ||||||
| 		void SetScene(Scene* scene); | 		void SetStage(Stage* scene); | ||||||
| 
 | 
 | ||||||
| 	protected: | 	protected: | ||||||
| 		bool			visible_; | 		bool			visible_; | ||||||
|  | @ -435,8 +435,8 @@ namespace kiwano | ||||||
| 		int				z_order_; | 		int				z_order_; | ||||||
| 		float			opacity_; | 		float			opacity_; | ||||||
| 		float			displayed_opacity_; | 		float			displayed_opacity_; | ||||||
| 		Node*			parent_; | 		Actor*			parent_; | ||||||
| 		Scene*			scene_; | 		Stage*			stage_; | ||||||
| 		size_t			hash_name_; | 		size_t			hash_name_; | ||||||
| 		Point			anchor_; | 		Point			anchor_; | ||||||
| 		Size			size_; | 		Size			size_; | ||||||
|  | @ -452,9 +452,9 @@ namespace kiwano | ||||||
| 	}; | 	}; | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 	// 可视化节点
 | 	// 可视化角色
 | ||||||
| 	class KGE_API VisualNode | 	class KGE_API VisualNode | ||||||
| 		: public Node | 		: public Actor | ||||||
| 	{ | 	{ | ||||||
| 	public: | 	public: | ||||||
| 		virtual void PrepareRender() override; | 		virtual void PrepareRender() override; | ||||||
|  | @ -51,7 +51,7 @@ namespace kiwano | ||||||
| 		frames_ = frames; | 		frames_ = frames; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void Animation::Init(NodePtr target) | 	void Animation::Init(ActorPtr target) | ||||||
| 	{ | 	{ | ||||||
| 		if (!frames_ || frames_->GetFrames().empty()) | 		if (!frames_ || frames_->GetFrames().empty()) | ||||||
| 		{ | 		{ | ||||||
|  | @ -66,7 +66,7 @@ namespace kiwano | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void Animation::UpdateTween(NodePtr target, float percent) | 	void Animation::UpdateTween(ActorPtr target, float percent) | ||||||
| 	{ | 	{ | ||||||
| 		auto sprite_target = dynamic_cast<Sprite*>(target.Get()); | 		auto sprite_target = dynamic_cast<Sprite*>(target.Get()); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -53,9 +53,9 @@ namespace kiwano | ||||||
| 		ActionPtr Reverse() const override; | 		ActionPtr Reverse() const override; | ||||||
| 
 | 
 | ||||||
| 	protected: | 	protected: | ||||||
| 		void Init(NodePtr target) override; | 		void Init(ActorPtr target) override; | ||||||
| 
 | 
 | ||||||
| 		void UpdateTween(NodePtr target, float percent) override; | 		void UpdateTween(ActorPtr target, float percent) override; | ||||||
| 
 | 
 | ||||||
| 	protected: | 	protected: | ||||||
| 		FramesPtr frames_; | 		FramesPtr frames_; | ||||||
|  |  | ||||||
|  | @ -19,7 +19,7 @@ | ||||||
| // THE SOFTWARE.
 | // THE SOFTWARE.
 | ||||||
| 
 | 
 | ||||||
| #pragma once | #pragma once | ||||||
| #include "Node.h" | #include "Actor.h" | ||||||
| #include "Font.hpp" | #include "Font.hpp" | ||||||
| #include "TextStyle.hpp" | #include "TextStyle.hpp" | ||||||
| #include "../renderer/TextRenderer.h" | #include "../renderer/TextRenderer.h" | ||||||
|  |  | ||||||
|  | @ -19,7 +19,7 @@ | ||||||
| // THE SOFTWARE.
 | // THE SOFTWARE.
 | ||||||
| 
 | 
 | ||||||
| #pragma once | #pragma once | ||||||
| #include "Node.h" | #include "Actor.h" | ||||||
| 
 | 
 | ||||||
| namespace kiwano | namespace kiwano | ||||||
| { | { | ||||||
|  |  | ||||||
|  | @ -19,7 +19,7 @@ | ||||||
| // THE SOFTWARE.
 | // THE SOFTWARE.
 | ||||||
| 
 | 
 | ||||||
| #pragma once | #pragma once | ||||||
| #include "Node.h" | #include "Actor.h" | ||||||
| #include "../base/Resource.h" | #include "../base/Resource.h" | ||||||
| #include "../renderer/render.h" | #include "../renderer/render.h" | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -52,7 +52,7 @@ namespace kiwano | ||||||
| 
 | 
 | ||||||
| 		if (!swallow_) | 		if (!swallow_) | ||||||
| 		{ | 		{ | ||||||
| 			NodePtr prev; | 			ActorPtr prev; | ||||||
| 			for (auto child = children_.Last(); child; child = prev) | 			for (auto child = children_.Last(); child; child = prev) | ||||||
| 			{ | 			{ | ||||||
| 				prev = child->PrevItem(); | 				prev = child->PrevItem(); | ||||||
|  |  | ||||||
|  | @ -19,12 +19,12 @@ | ||||||
| // THE SOFTWARE.
 | // THE SOFTWARE.
 | ||||||
| 
 | 
 | ||||||
| #pragma once | #pragma once | ||||||
| #include "Node.h" | #include "Actor.h" | ||||||
| 
 | 
 | ||||||
| namespace kiwano | namespace kiwano | ||||||
| { | { | ||||||
| 	class KGE_API Layer | 	class KGE_API Layer | ||||||
| 		: public Node | 		: public Actor | ||||||
| 	{ | 	{ | ||||||
| 	public: | 	public: | ||||||
| 		Layer(); | 		Layer(); | ||||||
|  |  | ||||||
|  | @ -19,12 +19,12 @@ | ||||||
| // THE SOFTWARE.
 | // THE SOFTWARE.
 | ||||||
| 
 | 
 | ||||||
| #pragma once | #pragma once | ||||||
| #include "Node.h" | #include "Actor.h" | ||||||
| #include "../renderer/render.h"  // ID2D1Geometry | #include "../renderer/render.h"  // ID2D1Geometry | ||||||
| 
 | 
 | ||||||
| namespace kiwano | namespace kiwano | ||||||
| { | { | ||||||
| 	// 二维图形节点
 | 	// śţÎŹÍźĐνÇÉŤ
 | ||||||
| 	class KGE_API ShapeNode | 	class KGE_API ShapeNode | ||||||
| 		: public VisualNode | 		: public VisualNode | ||||||
| 	{ | 	{ | ||||||
|  | @ -144,7 +144,7 @@ namespace kiwano | ||||||
| 	}; | 	}; | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 	// 矩形节点
 | 	// žŘĐνÇÉŤ
 | ||||||
| 	class KGE_API RectNode | 	class KGE_API RectNode | ||||||
| 		: public ShapeNode | 		: public ShapeNode | ||||||
| 	{ | 	{ | ||||||
|  | @ -171,7 +171,7 @@ namespace kiwano | ||||||
| 	}; | 	}; | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 	// 圆角矩形节点
 | 	// Ô˛˝ÇžŘĐνÇÉŤ
 | ||||||
| 	class KGE_API RoundedRectNode | 	class KGE_API RoundedRectNode | ||||||
| 		: public ShapeNode | 		: public ShapeNode | ||||||
| 	{ | 	{ | ||||||
|  | @ -214,7 +214,7 @@ namespace kiwano | ||||||
| 	}; | 	}; | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 	// 圆形节点
 | 	// Ô˛ĐνÇÉŤ
 | ||||||
| 	class KGE_API CircleNode | 	class KGE_API CircleNode | ||||||
| 		: public ShapeNode | 		: public ShapeNode | ||||||
| 	{ | 	{ | ||||||
|  | @ -251,7 +251,7 @@ namespace kiwano | ||||||
| 	}; | 	}; | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 	// 椭圆节点
 | 	// ÍÖÔ˛˝ÇÉŤ
 | ||||||
| 	class KGE_API EllipseNode | 	class KGE_API EllipseNode | ||||||
| 		: public ShapeNode | 		: public ShapeNode | ||||||
| 	{ | 	{ | ||||||
|  | @ -294,7 +294,7 @@ namespace kiwano | ||||||
| 	}; | 	}; | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 	// 路径节点
 | 	// ¡žś˝ÇÉŤ
 | ||||||
| 	class KGE_API PathNode | 	class KGE_API PathNode | ||||||
| 		: public ShapeNode | 		: public ShapeNode | ||||||
| 	{ | 	{ | ||||||
|  |  | ||||||
|  | @ -57,7 +57,7 @@ namespace kiwano | ||||||
| 		{ | 		{ | ||||||
| 			image_ = image; | 			image_ = image; | ||||||
| 
 | 
 | ||||||
| 			Node::SetSize(image_->GetWidth(), image_->GetHeight()); | 			Actor::SetSize(image_->GetWidth(), image_->GetHeight()); | ||||||
| 			return true; | 			return true; | ||||||
| 		} | 		} | ||||||
| 		return false; | 		return false; | ||||||
|  | @ -76,7 +76,7 @@ namespace kiwano | ||||||
| 	void Sprite::Crop(const Rect& crop_rect) | 	void Sprite::Crop(const Rect& crop_rect) | ||||||
| 	{ | 	{ | ||||||
| 		image_->Crop(crop_rect); | 		image_->Crop(crop_rect); | ||||||
| 		Node::SetSize( | 		Actor::SetSize( | ||||||
| 			std::min(std::max(crop_rect.size.x, 0.f), image_->GetSourceWidth() - image_->GetCropX()), | 			std::min(std::max(crop_rect.size.x, 0.f), image_->GetSourceWidth() - image_->GetCropX()), | ||||||
| 			std::min(std::max(crop_rect.size.y, 0.f), image_->GetSourceHeight() - image_->GetCropY()) | 			std::min(std::max(crop_rect.size.y, 0.f), image_->GetSourceHeight() - image_->GetCropY()) | ||||||
| 		); | 		); | ||||||
|  |  | ||||||
|  | @ -19,7 +19,7 @@ | ||||||
| // THE SOFTWARE.
 | // THE SOFTWARE.
 | ||||||
| 
 | 
 | ||||||
| #pragma once | #pragma once | ||||||
| #include "Node.h" | #include "Actor.h" | ||||||
| #include "Image.h" | #include "Image.h" | ||||||
| 
 | 
 | ||||||
| namespace kiwano | namespace kiwano | ||||||
|  |  | ||||||
|  | @ -18,32 +18,32 @@ | ||||||
| // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 | ||||||
| // THE SOFTWARE.
 | // THE SOFTWARE.
 | ||||||
| 
 | 
 | ||||||
| #include "Scene.h" | #include "Stage.h" | ||||||
| #include "../base/logs.h" | #include "../base/logs.h" | ||||||
| #include "../renderer/render.h" | #include "../renderer/render.h" | ||||||
| 
 | 
 | ||||||
| namespace kiwano | namespace kiwano | ||||||
| { | { | ||||||
| 	Scene::Scene() | 	Stage::Stage() | ||||||
| 	{ | 	{ | ||||||
| 		scene_ = this; | 		stage_ = this; | ||||||
| 
 | 
 | ||||||
| 		SetAnchor(0, 0); | 		SetAnchor(0, 0); | ||||||
| 		SetSize(Renderer::Instance()->GetOutputSize()); | 		SetSize(Renderer::Instance()->GetOutputSize()); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	Scene::~Scene() | 	Stage::~Stage() | ||||||
| 	{ | 	{ | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void Scene::OnEnter() | 	void Stage::OnEnter() | ||||||
| 	{ | 	{ | ||||||
| 		KGE_LOG(L"Scene entered"); | 		KGE_LOG(L"Stage entered"); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void Scene::OnExit() | 	void Stage::OnExit() | ||||||
| 	{ | 	{ | ||||||
| 		KGE_LOG(L"Scene exited"); | 		KGE_LOG(L"Stage exited"); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| } | } | ||||||
|  | @ -19,21 +19,21 @@ | ||||||
| // THE SOFTWARE.
 | // THE SOFTWARE.
 | ||||||
| 
 | 
 | ||||||
| #pragma once | #pragma once | ||||||
| #include "Node.h" | #include "Actor.h" | ||||||
| 
 | 
 | ||||||
| namespace kiwano | namespace kiwano | ||||||
| { | { | ||||||
| 	// ³¡¾°
 | 	// ³¡¾°
 | ||||||
| 	class KGE_API Scene | 	class KGE_API Stage | ||||||
| 		: public Node | 		: public Actor | ||||||
| 	{ | 	{ | ||||||
| 		friend class Transition; | 		friend class Transition; | ||||||
| 		friend class Stage; | 		friend class Director; | ||||||
| 
 | 
 | ||||||
| 	public: | 	public: | ||||||
| 		Scene(); | 		Stage(); | ||||||
| 
 | 
 | ||||||
| 		virtual ~Scene(); | 		virtual ~Stage(); | ||||||
| 
 | 
 | ||||||
| 		// ½øÈ볡¾°
 | 		// ½øÈ볡¾°
 | ||||||
| 		virtual void OnEnter(); | 		virtual void OnEnter(); | ||||||
|  | @ -19,7 +19,7 @@ | ||||||
| // THE SOFTWARE.
 | // THE SOFTWARE.
 | ||||||
| 
 | 
 | ||||||
| #pragma once | #pragma once | ||||||
| #include "Node.h" | #include "Actor.h" | ||||||
| #include "Font.hpp" | #include "Font.hpp" | ||||||
| #include "TextStyle.hpp" | #include "TextStyle.hpp" | ||||||
| #include <dwrite.h> | #include <dwrite.h> | ||||||
|  |  | ||||||
|  | @ -19,8 +19,8 @@ | ||||||
| // THE SOFTWARE.
 | // THE SOFTWARE.
 | ||||||
| 
 | 
 | ||||||
| #include "Transition.h" | #include "Transition.h" | ||||||
| #include "Node.h" | #include "Actor.h" | ||||||
| #include "Scene.h" | #include "Stage.h" | ||||||
| #include "../base/window.h" | #include "../base/window.h" | ||||||
| #include "../base/logs.h" | #include "../base/logs.h" | ||||||
| #include "../renderer/render.h" | #include "../renderer/render.h" | ||||||
|  | @ -55,7 +55,7 @@ namespace kiwano | ||||||
| 		return done_; | 		return done_; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void Transition::Init(ScenePtr prev, ScenePtr next) | 	void Transition::Init(StagePtr prev, StagePtr next) | ||||||
| 	{ | 	{ | ||||||
| 		process_ = 0; | 		process_ = 0; | ||||||
| 		delta_ = Duration{}; | 		delta_ = Duration{}; | ||||||
|  | @ -147,7 +147,7 @@ namespace kiwano | ||||||
| 	{ | 	{ | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void BoxTransition::Init(ScenePtr prev, ScenePtr next) | 	void BoxTransition::Init(StagePtr prev, StagePtr next) | ||||||
| 	{ | 	{ | ||||||
| 		Transition::Init(prev, next); | 		Transition::Init(prev, next); | ||||||
| 
 | 
 | ||||||
|  | @ -189,7 +189,7 @@ namespace kiwano | ||||||
| 	{ | 	{ | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void EmergeTransition::Init(ScenePtr prev, ScenePtr next) | 	void EmergeTransition::Init(StagePtr prev, StagePtr next) | ||||||
| 	{ | 	{ | ||||||
| 		Transition::Init(prev, next); | 		Transition::Init(prev, next); | ||||||
| 
 | 
 | ||||||
|  | @ -214,7 +214,7 @@ namespace kiwano | ||||||
| 	{ | 	{ | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void FadeTransition::Init(ScenePtr prev, ScenePtr next) | 	void FadeTransition::Init(StagePtr prev, StagePtr next) | ||||||
| 	{ | 	{ | ||||||
| 		Transition::Init(prev, next); | 		Transition::Init(prev, next); | ||||||
| 
 | 
 | ||||||
|  | @ -248,7 +248,7 @@ namespace kiwano | ||||||
| 	{ | 	{ | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void MoveTransition::Init(ScenePtr prev, ScenePtr next) | 	void MoveTransition::Init(StagePtr prev, StagePtr next) | ||||||
| 	{ | 	{ | ||||||
| 		Transition::Init(prev, next); | 		Transition::Init(prev, next); | ||||||
| 
 | 
 | ||||||
|  | @ -327,7 +327,7 @@ namespace kiwano | ||||||
| 	{ | 	{ | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void RotationTransition::Init(ScenePtr prev, ScenePtr next) | 	void RotationTransition::Init(StagePtr prev, StagePtr next) | ||||||
| 	{ | 	{ | ||||||
| 		Transition::Init(prev, next); | 		Transition::Init(prev, next); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -24,13 +24,13 @@ | ||||||
| 
 | 
 | ||||||
| namespace kiwano | namespace kiwano | ||||||
| { | { | ||||||
| 	class Stage; | 	class Director; | ||||||
| 
 | 
 | ||||||
| 	// ³¡¾°¹ý¶É
 | 	// ³¡¾°¹ý¶É
 | ||||||
| 	class KGE_API Transition | 	class KGE_API Transition | ||||||
| 		: public Object | 		: public Object | ||||||
| 	{ | 	{ | ||||||
| 		friend class Stage; | 		friend class Director; | ||||||
| 
 | 
 | ||||||
| 	public: | 	public: | ||||||
| 		explicit Transition( | 		explicit Transition( | ||||||
|  | @ -43,8 +43,8 @@ namespace kiwano | ||||||
| 
 | 
 | ||||||
| 	protected: | 	protected: | ||||||
| 		virtual void Init( | 		virtual void Init( | ||||||
| 			ScenePtr prev, | 			StagePtr prev, | ||||||
| 			ScenePtr next | 			StagePtr next | ||||||
| 		); | 		); | ||||||
| 
 | 
 | ||||||
| 		virtual void Update(Duration dt); | 		virtual void Update(Duration dt); | ||||||
|  | @ -61,8 +61,8 @@ namespace kiwano | ||||||
| 		Duration			duration_; | 		Duration			duration_; | ||||||
| 		Duration			delta_; | 		Duration			delta_; | ||||||
| 		Size				window_size_; | 		Size				window_size_; | ||||||
| 		ScenePtr			out_scene_; | 		StagePtr			out_scene_; | ||||||
| 		ScenePtr			in_scene_; | 		StagePtr			in_scene_; | ||||||
| 		ComPtr<ID2D1Layer>	out_layer_; | 		ComPtr<ID2D1Layer>	out_layer_; | ||||||
| 		ComPtr<ID2D1Layer>	in_layer_; | 		ComPtr<ID2D1Layer>	in_layer_; | ||||||
| 		LayerProperties		out_layer_prop_; | 		LayerProperties		out_layer_prop_; | ||||||
|  | @ -84,8 +84,8 @@ namespace kiwano | ||||||
| 		void Update(Duration dt) override; | 		void Update(Duration dt) override; | ||||||
| 
 | 
 | ||||||
| 		virtual void Init( | 		virtual void Init( | ||||||
| 			ScenePtr prev, | 			StagePtr prev, | ||||||
| 			ScenePtr next | 			StagePtr next | ||||||
| 		) override; | 		) override; | ||||||
| 	}; | 	}; | ||||||
| 
 | 
 | ||||||
|  | @ -103,8 +103,8 @@ namespace kiwano | ||||||
| 		void Update(Duration dt) override; | 		void Update(Duration dt) override; | ||||||
| 
 | 
 | ||||||
| 		virtual void Init( | 		virtual void Init( | ||||||
| 			ScenePtr prev, | 			StagePtr prev, | ||||||
| 			ScenePtr next | 			StagePtr next | ||||||
| 		) override; | 		) override; | ||||||
| 	}; | 	}; | ||||||
| 
 | 
 | ||||||
|  | @ -122,8 +122,8 @@ namespace kiwano | ||||||
| 		void Update(Duration dt) override; | 		void Update(Duration dt) override; | ||||||
| 
 | 
 | ||||||
| 		virtual void Init( | 		virtual void Init( | ||||||
| 			ScenePtr prev, | 			StagePtr prev, | ||||||
| 			ScenePtr next | 			StagePtr next | ||||||
| 		) override; | 		) override; | ||||||
| 	}; | 	}; | ||||||
| 
 | 
 | ||||||
|  | @ -142,8 +142,8 @@ namespace kiwano | ||||||
| 		void Update(Duration dt) override; | 		void Update(Duration dt) override; | ||||||
| 
 | 
 | ||||||
| 		virtual void Init( | 		virtual void Init( | ||||||
| 			ScenePtr prev, | 			StagePtr prev, | ||||||
| 			ScenePtr next | 			StagePtr next | ||||||
| 		) override; | 		) override; | ||||||
| 
 | 
 | ||||||
| 		void Reset() override; | 		void Reset() override; | ||||||
|  | @ -169,8 +169,8 @@ namespace kiwano | ||||||
| 		void Update(Duration dt) override; | 		void Update(Duration dt) override; | ||||||
| 
 | 
 | ||||||
| 		virtual void Init( | 		virtual void Init( | ||||||
| 			ScenePtr prev, | 			StagePtr prev, | ||||||
| 			ScenePtr next | 			StagePtr next | ||||||
| 		) override; | 		) override; | ||||||
| 
 | 
 | ||||||
| 		void Reset() override; | 		void Reset() override; | ||||||
|  |  | ||||||
|  | @ -38,8 +38,8 @@ namespace kiwano | ||||||
| 	KGE_DECLARE_SMART_PTR(GifImage); | 	KGE_DECLARE_SMART_PTR(GifImage); | ||||||
| 	KGE_DECLARE_SMART_PTR(Frames); | 	KGE_DECLARE_SMART_PTR(Frames); | ||||||
| 
 | 
 | ||||||
| 	KGE_DECLARE_SMART_PTR(Node); | 	KGE_DECLARE_SMART_PTR(Actor); | ||||||
| 	KGE_DECLARE_SMART_PTR(Scene); | 	KGE_DECLARE_SMART_PTR(Stage); | ||||||
| 	KGE_DECLARE_SMART_PTR(Layer); | 	KGE_DECLARE_SMART_PTR(Layer); | ||||||
| 	KGE_DECLARE_SMART_PTR(Sprite); | 	KGE_DECLARE_SMART_PTR(Sprite); | ||||||
| 	KGE_DECLARE_SMART_PTR(GifSprite); | 	KGE_DECLARE_SMART_PTR(GifSprite); | ||||||
|  |  | ||||||
|  | @ -18,26 +18,26 @@ | ||||||
| // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 | ||||||
| // THE SOFTWARE.
 | // THE SOFTWARE.
 | ||||||
| 
 | 
 | ||||||
| #include "Stage.h" | #include "Director.h" | ||||||
| #include "../2d/Node.h" | #include "../2d/Actor.h" | ||||||
| #include "../2d/Scene.h" | #include "../2d/Stage.h" | ||||||
| #include "../2d/Transition.h" | #include "../2d/Transition.h" | ||||||
| #include "../2d/DebugNode.h" | #include "../2d/DebugNode.h" | ||||||
| 
 | 
 | ||||||
| namespace kiwano | namespace kiwano | ||||||
| { | { | ||||||
| 	Stage::Stage() | 	Director::Director() | ||||||
| 		: render_border_enabled_(false) | 		: render_border_enabled_(false) | ||||||
| 	{ | 	{ | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	Stage::~Stage() | 	Director::~Director() | ||||||
| 	{ | 	{ | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void Stage::EnterScene(ScenePtr scene) | 	void Director::EnterStage(StagePtr scene) | ||||||
| 	{ | 	{ | ||||||
| 		KGE_ASSERT(scene && "Stage::EnterScene failed, NULL pointer exception"); | 		KGE_ASSERT(scene && "Director::EnterStage failed, NULL pointer exception"); | ||||||
| 
 | 
 | ||||||
| 		if (curr_scene_ == scene || next_scene_ == scene) | 		if (curr_scene_ == scene || next_scene_ == scene) | ||||||
| 			return; | 			return; | ||||||
|  | @ -45,9 +45,9 @@ namespace kiwano | ||||||
| 		next_scene_ = scene; | 		next_scene_ = scene; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void Stage::EnterScene(ScenePtr scene, TransitionPtr transition) | 	void Director::EnterStage(StagePtr scene, TransitionPtr transition) | ||||||
| 	{ | 	{ | ||||||
| 		EnterScene(scene); | 		EnterStage(scene); | ||||||
| 
 | 
 | ||||||
| 		if (transition && next_scene_) | 		if (transition && next_scene_) | ||||||
| 		{ | 		{ | ||||||
|  | @ -60,17 +60,17 @@ namespace kiwano | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	ScenePtr Stage::GetCurrentScene() | 	StagePtr Director::GetCurrentStage() | ||||||
| 	{ | 	{ | ||||||
| 		return curr_scene_; | 		return curr_scene_; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void Stage::SetRenderBorderEnabled(bool enabled) | 	void Director::SetRenderBorderEnabled(bool enabled) | ||||||
| 	{ | 	{ | ||||||
| 		render_border_enabled_ = enabled; | 		render_border_enabled_ = enabled; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void Stage::ShowDebugInfo(bool show) | 	void Director::ShowDebugInfo(bool show) | ||||||
| 	{ | 	{ | ||||||
| 		if (show) | 		if (show) | ||||||
| 		{ | 		{ | ||||||
|  | @ -83,7 +83,7 @@ namespace kiwano | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void Stage::OnUpdate(Duration dt) | 	void Director::OnUpdate(Duration dt) | ||||||
| 	{ | 	{ | ||||||
| 		if (transition_) | 		if (transition_) | ||||||
| 		{ | 		{ | ||||||
|  | @ -116,7 +116,7 @@ namespace kiwano | ||||||
| 			debug_node_->Update(dt); | 			debug_node_->Update(dt); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void Stage::OnRender() | 	void Director::OnRender() | ||||||
| 	{ | 	{ | ||||||
| 		if (transition_) | 		if (transition_) | ||||||
| 		{ | 		{ | ||||||
|  | @ -131,7 +131,7 @@ namespace kiwano | ||||||
| 			debug_node_->Render(); | 			debug_node_->Render(); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void Stage::AfterRender() | 	void Director::AfterRender() | ||||||
| 	{ | 	{ | ||||||
| 		if (render_border_enabled_) | 		if (render_border_enabled_) | ||||||
| 		{ | 		{ | ||||||
|  | @ -140,7 +140,7 @@ namespace kiwano | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	void Stage::HandleEvent(Event& evt) | 	void Director::HandleEvent(Event& evt) | ||||||
| 	{ | 	{ | ||||||
| 		if (debug_node_) | 		if (debug_node_) | ||||||
| 			debug_node_->Dispatch(evt); | 			debug_node_->Dispatch(evt); | ||||||
|  | @ -26,28 +26,28 @@ | ||||||
| 
 | 
 | ||||||
| namespace kiwano | namespace kiwano | ||||||
| { | { | ||||||
| 	class KGE_API Stage | 	class KGE_API Director | ||||||
| 		: public Singleton<Stage> | 		: public Singleton<Director> | ||||||
| 		, public Component | 		, public Component | ||||||
| 	{ | 	{ | ||||||
| 		KGE_DECLARE_SINGLETON(Stage); | 		KGE_DECLARE_SINGLETON(Director); | ||||||
| 
 | 
 | ||||||
| 	public: | 	public: | ||||||
| 		// 切换场景
 | 		// 切换场景
 | ||||||
| 		void EnterScene( | 		void EnterStage( | ||||||
| 			ScenePtr scene				/* 场景 */ | 			StagePtr scene				/* 场景 */ | ||||||
| 		); | 		); | ||||||
| 
 | 
 | ||||||
| 		// 切换场景
 | 		// 切换场景
 | ||||||
| 		void EnterScene( | 		void EnterStage( | ||||||
| 			ScenePtr scene,				/* 场景 */ | 			StagePtr scene,				/* 场景 */ | ||||||
| 			TransitionPtr transition	/* 场景动画 */ | 			TransitionPtr transition	/* 场景动画 */ | ||||||
| 		); | 		); | ||||||
| 
 | 
 | ||||||
| 		// 获取当前场景
 | 		// 获取当前场景
 | ||||||
| 		ScenePtr GetCurrentScene(); | 		StagePtr GetCurrentStage(); | ||||||
| 
 | 
 | ||||||
| 		// 启用或禁用场景内的节点边界渲染功能
 | 		// 启用或禁用角色边界渲染功能
 | ||||||
| 		void SetRenderBorderEnabled(bool enabled); | 		void SetRenderBorderEnabled(bool enabled); | ||||||
| 
 | 
 | ||||||
| 		// 显示调试信息
 | 		// 显示调试信息
 | ||||||
|  | @ -67,15 +67,15 @@ namespace kiwano | ||||||
| 		void HandleEvent(Event& evt) override; | 		void HandleEvent(Event& evt) override; | ||||||
| 
 | 
 | ||||||
| 	protected: | 	protected: | ||||||
| 		Stage(); | 		Director(); | ||||||
| 
 | 
 | ||||||
| 		virtual ~Stage(); | 		virtual ~Director(); | ||||||
| 
 | 
 | ||||||
| 	protected: | 	protected: | ||||||
| 		bool			render_border_enabled_; | 		bool			render_border_enabled_; | ||||||
| 		ScenePtr		curr_scene_; | 		StagePtr		curr_scene_; | ||||||
| 		ScenePtr		next_scene_; | 		StagePtr		next_scene_; | ||||||
| 		NodePtr			debug_node_; | 		ActorPtr			debug_node_; | ||||||
| 		TransitionPtr	transition_; | 		TransitionPtr	transition_; | ||||||
| 	}; | 	}; | ||||||
| } | } | ||||||
|  | @ -105,7 +105,7 @@ namespace kiwano | ||||||
| 		void* data; | 		void* data; | ||||||
| 	}; | 	}; | ||||||
| 
 | 
 | ||||||
| 	class Node; | 	class Actor; | ||||||
| 
 | 
 | ||||||
| 	// 事件
 | 	// 事件
 | ||||||
| 	struct KGE_API Event | 	struct KGE_API Event | ||||||
|  | @ -145,7 +145,7 @@ namespace kiwano | ||||||
| 		}; | 		}; | ||||||
| 
 | 
 | ||||||
| 		UINT type; | 		UINT type; | ||||||
| 		Node* target; | 		Actor* target; | ||||||
| 
 | 
 | ||||||
| 		union | 		union | ||||||
| 		{ | 		{ | ||||||
|  |  | ||||||
|  | @ -63,7 +63,7 @@ | ||||||
| #include "base/time.h" | #include "base/time.h" | ||||||
| #include "base/window.h" | #include "base/window.h" | ||||||
| #include "base/input.h" | #include "base/input.h" | ||||||
| #include "base/Stage.h" | #include "base/Director.h" | ||||||
| #include "base/logs.h" | #include "base/logs.h" | ||||||
| #include "renderer/render.h" | #include "renderer/render.h" | ||||||
| #include "platform/modules.h" | #include "platform/modules.h" | ||||||
|  | @ -94,8 +94,8 @@ | ||||||
| #include "2d/ActionManager.h" | #include "2d/ActionManager.h" | ||||||
| #include "2d/Transition.h" | #include "2d/Transition.h" | ||||||
| 
 | 
 | ||||||
| #include "2d/Node.h" | #include "2d/Actor.h" | ||||||
| #include "2d/Scene.h" | #include "2d/Stage.h" | ||||||
| #include "2d/Layer.h" | #include "2d/Layer.h" | ||||||
| #include "2d/Sprite.h" | #include "2d/Sprite.h" | ||||||
| #include "2d/GifSprite.h" | #include "2d/GifSprite.h" | ||||||
|  |  | ||||||
|  | @ -23,7 +23,7 @@ | ||||||
| #include "../base/window.h" | #include "../base/window.h" | ||||||
| #include "../base/logs.h" | #include "../base/logs.h" | ||||||
| #include "../base/input.h" | #include "../base/input.h" | ||||||
| #include "../base/Stage.h" | #include "../base/Director.h" | ||||||
| #include "../renderer/render.h" | #include "../renderer/render.h" | ||||||
| #include <windowsx.h>  // GET_X_LPARAM, GET_Y_LPARAM
 | #include <windowsx.h>  // GET_X_LPARAM, GET_Y_LPARAM
 | ||||||
| #include <imm.h>  // ImmAssociateContext
 | #include <imm.h>  // ImmAssociateContext
 | ||||||
|  | @ -66,7 +66,7 @@ namespace kiwano | ||||||
| 
 | 
 | ||||||
| 		Use(Renderer::Instance()); | 		Use(Renderer::Instance()); | ||||||
| 		Use(Input::Instance()); | 		Use(Input::Instance()); | ||||||
| 		Use(Stage::Instance()); | 		Use(Director::Instance()); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	Application::~Application() | 	Application::~Application() | ||||||
|  | @ -100,7 +100,7 @@ namespace kiwano | ||||||
| 
 | 
 | ||||||
| 		if (options.debug) | 		if (options.debug) | ||||||
| 		{ | 		{ | ||||||
| 			Stage::Instance()->ShowDebugInfo(true); | 			Director::Instance()->ShowDebugInfo(true); | ||||||
| 			Renderer::Instance()->SetCollectingStatus(true); | 			Renderer::Instance()->SetCollectingStatus(true); | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
|  | @ -158,7 +158,7 @@ namespace kiwano | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		// Destroy all instances
 | 		// Destroy all instances
 | ||||||
| 		Stage::Destroy(); | 		Director::Destroy(); | ||||||
| 		Input::Destroy(); | 		Input::Destroy(); | ||||||
| 		Renderer::Destroy(); | 		Renderer::Destroy(); | ||||||
| 		Window::Destroy(); | 		Window::Destroy(); | ||||||
|  |  | ||||||
|  | @ -19,7 +19,7 @@ | ||||||
| // THE SOFTWARE.
 | // THE SOFTWARE.
 | ||||||
| 
 | 
 | ||||||
| #include "Button.h" | #include "Button.h" | ||||||
| #include "../2d/Scene.h" | #include "../2d/Stage.h" | ||||||
| #include "../base/window.h" | #include "../base/window.h" | ||||||
| 
 | 
 | ||||||
| namespace kiwano | namespace kiwano | ||||||
|  |  | ||||||
|  | @ -25,7 +25,7 @@ namespace kiwano | ||||||
| { | { | ||||||
| 	// 꽉데
 | 	// 꽉데
 | ||||||
| 	class KGE_API Menu | 	class KGE_API Menu | ||||||
| 		: public Node | 		: public Actor | ||||||
| 	{ | 	{ | ||||||
| 	public: | 	public: | ||||||
| 		Menu(); | 		Menu(); | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue