ShitEngine
基于 C++20 与 SDL3 的轻量级 2D 游戏引擎
Toggle main menu visibility
载入中...
搜索中...
未找到
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
7
struct
SDL_Renderer;
8
9
namespace
Shit
{
10
class
CameraComponent
;
11
18
class
SHIT_API
SHIT_REFLECT
(BlackList)
RendererComponent
:
public
Component
{
19
SHIT_REFLECT_BODY
(
RendererComponent
)
20
public
:
21
RendererComponent
();
22
~RendererComponent
()
override
=
default
;
23
24
void
onAttach
()
override
;
25
void
onDetach
()
override
;
26
virtual
void
onRender
(SDL_Renderer* renderer,
const
CameraComponent
* camera)
const
= 0;
27
void
onDestroy
()
override
;
28
29
// --- getter & setter ---
30
int
getZIndex
()
const
{
return
m_zIndex
; }
31
bool
isVisible
()
const
{
return
m_isVisible
; }
32
virtual
SDL_FRect
getGlobalBounds
() = 0;
33
34
void
setZIndex
(
int
zIndex) {
m_zIndex
= zIndex; }
35
void
setVisible
(
bool
isVisible
) {
m_isVisible
=
isVisible
; }
36
37
protected
:
38
SHIT_META
(({.displayName =
"Z-Index"
, .tooltip =
"渲染层级(值越大越靠上)"
}))
39
int
m_zIndex
= 0;
40
SHIT_META
(({.displayName =
"Visible"
}))
41
bool
m_isVisible
=
true
;
42
};
43
}
Component.h
Core.h
SHIT_API
#define SHIT_API
定义
Core.h:14
SHIT_REFLECT_BODY
#define SHIT_REFLECT_BODY(Type)
定义
Macros.h:62
SHIT_REFLECT
#define SHIT_REFLECT(Mode)
定义
Macros.h:59
SHIT_META
#define SHIT_META(...)
定义
Macros.h:68
Math.h
Shit::CameraComponent
相机组件,定义"从哪个角度观察世界"
定义
CameraComponent.h:16
Shit::Component::Component
Component()
Shit::RendererComponent::RendererComponent
RendererComponent()
Shit::RendererComponent::m_zIndex
int m_zIndex
定义
RendererComponent.h:39
Shit::RendererComponent::~RendererComponent
~RendererComponent() override=default
Shit::RendererComponent::onRender
virtual void onRender(SDL_Renderer *renderer, const CameraComponent *camera) const =0
纯虚:子类实现绘制逻辑
Shit::RendererComponent::getGlobalBounds
virtual SDL_FRect getGlobalBounds()=0
世界坐标下的轴对齐包围盒
Shit::RendererComponent::setVisible
void setVisible(bool isVisible)
定义
RendererComponent.h:35
Shit::RendererComponent::isVisible
bool isVisible() const
是否可见
定义
RendererComponent.h:31
Shit::RendererComponent::setZIndex
void setZIndex(int zIndex)
定义
RendererComponent.h:34
Shit::RendererComponent::onAttach
void onAttach() override
Shit::RendererComponent::m_isVisible
bool m_isVisible
定义
RendererComponent.h:41
Shit::RendererComponent::onDetach
void onDetach() override
Shit::RendererComponent::getZIndex
int getZIndex() const
渲染层级,值越大越靠上
定义
RendererComponent.h:30
Shit::RendererComponent::onDestroy
void onDestroy() override
Shit
定义
AudioPlayer.h:10
include
ShitEngine
Component
RendererComponent.h
制作者
1.17.0