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
RendererComponent
:
public
Component
{
19
public
:
20
RendererComponent
();
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; }
34
void
setVisible
(
bool
isVisible
) {
m_isVisible
=
isVisible
; }
35
36
protected
:
37
int
m_zIndex
= 0;
38
bool
m_isVisible
=
true
;
39
};
40
}
Component.h
Core.h
SHIT_API
#define SHIT_API
定义
Core.h:12
Math.h
Shit::CameraComponent
相机组件,定义"从哪个角度观察世界"
定义
CameraComponent.h:15
Shit::Component::Component
Component()
Shit::RendererComponent::RendererComponent
RendererComponent()
Shit::RendererComponent::m_zIndex
int m_zIndex
渲染顺序(值越大越靠上)
定义
RendererComponent.h:37
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:34
Shit::RendererComponent::isVisible
bool isVisible() const
是否可见
定义
RendererComponent.h:30
Shit::RendererComponent::setZIndex
void setZIndex(int zIndex)
定义
RendererComponent.h:33
Shit::RendererComponent::onAttach
void onAttach() override
Shit::RendererComponent::m_isVisible
bool m_isVisible
是否参与渲染
定义
RendererComponent.h:38
Shit::RendererComponent::onDetach
void onDetach() override
Shit::RendererComponent::getZIndex
int getZIndex() const
渲染层级,值越大越靠上
定义
RendererComponent.h:29
Shit::RendererComponent::onDestroy
void onDestroy() override
Shit
定义
AudioPlayer.h:9
ShitEngine
Component
RendererComponent.h
制作者
1.17.0