ShitEngine
基于 C++20 与 SDL3 的轻量级 2D 游戏引擎
Toggle main menu visibility
载入中...
搜索中...
未找到
SpriteRenderer.h
浏览该文件的文档.
1
#pragma once
2
#include "
../Core/Config.h
"
3
#include "
RendererComponent.h
"
4
#include "
../Render/Sprite.h
"
5
6
#include <optional>
7
#include <SDL3/SDL_rect.h>
8
9
struct
SDL_Texture;
10
11
namespace
Shit
{
12
class
CameraComponent
;
13
class
GameObject
;
14
22
class
SHIT_API
SpriteRenderer
:
public
RendererComponent
{
23
friend
class
GameObject
;
24
public
:
25
SpriteRenderer
() =
default
;
26
~SpriteRenderer
()
override
=
default
;
27
28
void
onRender
(SDL_Renderer* renderer,
const
CameraComponent
* camera)
const override
;
29
30
// --- setter & getter ---
31
void
setTexturePath
(
const
std::string& texturePath);
// 非内联:含纹理存在性检查
32
const
std::string&
getTexturePath
()
const
{
return
m_sprite.getTexturePath(); }
33
34
void
setSourceRect
(
const
std::optional<SDL_FRect>& sourceRect) { m_sprite.setSourceRect(sourceRect); }
35
const
std::optional<SDL_FRect>&
getSourceRect
()
const
{
return
m_sprite.getSourceRect(); }
36
37
void
setFlipped
(
bool
flipped) { m_sprite.setFlipped(flipped); }
38
bool
isFlipped
()
const
{
return
m_sprite.isFlipped(); }
39
40
SDL_FRect
getGlobalBounds
()
override
;
41
private
:
42
Sprite
m_sprite;
// 描述"画什么"的数据
43
};
44
}
Config.h
SHIT_API
#define SHIT_API
定义
Core.h:12
RendererComponent.h
Sprite.h
Shit::CameraComponent
相机组件,定义"从哪个角度观察世界"
定义
CameraComponent.h:15
Shit::GameObject
游戏物体类
定义
GameObject.h:22
Shit::RendererComponent::RendererComponent
RendererComponent()
Shit::Sprite
精灵数据,描述"画什么"
定义
Sprite.h:14
Shit::SpriteRenderer::GameObject
friend class GameObject
定义
SpriteRenderer.h:23
Shit::SpriteRenderer::getGlobalBounds
SDL_FRect getGlobalBounds() override
世界坐标下的轴对齐包围盒
Shit::SpriteRenderer::setTexturePath
void setTexturePath(const std::string &texturePath)
Shit::SpriteRenderer::SpriteRenderer
SpriteRenderer()=default
Shit::SpriteRenderer::setSourceRect
void setSourceRect(const std::optional< SDL_FRect > &sourceRect)
定义
SpriteRenderer.h:34
Shit::SpriteRenderer::~SpriteRenderer
~SpriteRenderer() override=default
Shit::SpriteRenderer::getTexturePath
const std::string & getTexturePath() const
定义
SpriteRenderer.h:32
Shit::SpriteRenderer::getSourceRect
const std::optional< SDL_FRect > & getSourceRect() const
定义
SpriteRenderer.h:35
Shit::SpriteRenderer::setFlipped
void setFlipped(bool flipped)
定义
SpriteRenderer.h:37
Shit::SpriteRenderer::onRender
void onRender(SDL_Renderer *renderer, const CameraComponent *camera) const override
纯虚:子类实现绘制逻辑
Shit::SpriteRenderer::isFlipped
bool isFlipped() const
定义
SpriteRenderer.h:38
Shit
定义
AudioPlayer.h:9
ShitEngine
Component
SpriteRenderer.h
制作者
1.17.0