32 lines
		
	
	
		
			748 B
		
	
	
	
		
			C
		
	
	
	
		
		
			
		
	
	
			32 lines
		
	
	
		
			748 B
		
	
	
	
		
			C
		
	
	
	
|  | #pragma once
 | ||
|  | #include "Tool/RefPtr.h"
 | ||
|  | #include "Tool/RefObject.h"
 | ||
|  | #include <functional>
 | ||
|  | #include <SDL.h>
 | ||
|  | class Actor_base : public RefObject | ||
|  | { | ||
|  | 
 | ||
|  | public: | ||
|  |     /// \~chinese
 | ||
|  |     /// @brief 角色更新回调函数
 | ||
|  |     typedef std::function<void(float deltaTime)> UpdateCallback; | ||
|  | 
 | ||
|  | public: | ||
|  |     Actor_base(/* args */) = default; | ||
|  |     virtual ~Actor_base() = default; | ||
|  | 
 | ||
|  |     virtual void Init(); | ||
|  |     virtual void HandleEvents(SDL_Event *e); | ||
|  |     virtual void Update(float deltaTime); | ||
|  |     virtual void Render(float deltaTime); | ||
|  |     virtual void Clear(); | ||
|  | 
 | ||
|  |     /// \~chinese
 | ||
|  |     /// @brief 设置更新时的回调函数
 | ||
|  |     void SetCallbackOnUpdate(const UpdateCallback &cb); | ||
|  | 
 | ||
|  | private: | ||
|  |     /* data */ | ||
|  |     UpdateCallback cb_update_; // 更新时的回调函数
 | ||
|  | }; |