ShitEngine
基于 C++20 与 SDL3 的轻量级 2D 游戏引擎
载入中...
搜索中...
未找到
RendererComponent.h
浏览该文件的文档.
1#pragma once
2#include "../Core/Core.h"
3#include "Component.h"
4#include "../Math.h"
5#include <SDL3/SDL_rect.h>
6
7struct SDL_Renderer;
8
9namespace Shit {
10 class CameraComponent;
11
19 public:
21 ~RendererComponent() override = default;
22
23 void onAttach() override;
24 void onDetach() override;
25 virtual void onRender(SDL_Renderer* renderer, const CameraComponent* camera) const = 0;
26 void onDestroy() override;
27
28 // --- getter & setter ---
29 int getZIndex() const { return m_zIndex; }
30 bool isVisible() const { return m_isVisible; }
31 virtual SDL_FRect getGlobalBounds() = 0;
32
33 void setZIndex(int zIndex) { m_zIndex = zIndex; }
35
36 protected:
37 int m_zIndex = 0;
38 bool m_isVisible = true;
39 };
40}
#define SHIT_API
定义 Core.h:12
相机组件,定义"从哪个角度观察世界"
定义 CameraComponent.h:15
int m_zIndex
渲染顺序(值越大越靠上)
定义 RendererComponent.h:37
~RendererComponent() override=default
virtual void onRender(SDL_Renderer *renderer, const CameraComponent *camera) const =0
纯虚:子类实现绘制逻辑
virtual SDL_FRect getGlobalBounds()=0
世界坐标下的轴对齐包围盒
void setVisible(bool isVisible)
定义 RendererComponent.h:34
bool isVisible() const
是否可见
定义 RendererComponent.h:30
void setZIndex(int zIndex)
定义 RendererComponent.h:33
void onAttach() override
bool m_isVisible
是否参与渲染
定义 RendererComponent.h:38
void onDetach() override
int getZIndex() const
渲染层级,值越大越靠上
定义 RendererComponent.h:29
void onDestroy() override
定义 AudioPlayer.h:9