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_; // 更新时的回调函数
|
|
};
|