ShitEngine
基于 C++20 与 SDL3 的轻量级 2D 游戏引擎
Toggle main menu visibility
载入中...
搜索中...
未找到
UIImage.h
浏览该文件的文档.
1
#pragma once
2
#include "
UIRendererComponent.h
"
3
#include "
../Render/Sprite.h
"
4
#include <string>
5
#include <optional>
6
7
namespace
Shit
{
15
class
SHIT_API
SHIT_REFLECT
(BlackList)
UIImage
:
public
UIRendererComponent
{
16
SHIT_REFLECT_BODY
(
UIImage
)
17
public
:
18
UIImage
() =
default
;
19
explicit
UIImage
(
const
std::string& texturePath);
20
~UIImage
()
override
;
21
22
void
onRender
(
const
SDL_FRect& screenRect)
override
;
23
void
onDestroy
()
override
;
24
25
// --- getter & setter ---
26
void
setTexturePath
(
const
std::string& texturePath) { m_sprite.setTexturePath(texturePath); }
27
const
std::string&
getTexturePath
()
const
{
return
m_sprite.getTexturePath(); }
28
29
void
setSourceRect
(
const
std::optional<SDL_FRect>& sourceRect) { m_sprite.setSourceRect(sourceRect); }
30
const
std::optional<SDL_FRect>&
getSourceRect
()
const
{
return
m_sprite.getSourceRect(); }
31
32
void
setFlipped
(
bool
flipped) { m_sprite.setFlipped(flipped); }
33
bool
isFlipped
()
const
{
return
m_sprite.isFlipped(); }
34
35
const
Color
&
getColor
()
const
{
return
m_color; }
36
void
setColor
(
const
Color
& color) { m_color = color; }
37
38
private
:
39
SHIT_META
(({.displayName =
"Sprite"
, .readOnly =
true
}))
40
Sprite m_sprite;
41
SHIT_META
(({.displayName =
"Color"
, .tooltip =
"颜色叠加(用于按钮状态切换着色)"
}))
42
Color m_color;
43
};
44
}
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
Sprite.h
UIRendererComponent.h
Shit::UIImage::getColor
const Color & getColor() const
定义
UIImage.h:35
Shit::UIImage::setTexturePath
void setTexturePath(const std::string &texturePath)
定义
UIImage.h:26
Shit::UIImage::setColor
void setColor(const Color &color)
定义
UIImage.h:36
Shit::UIImage::setSourceRect
void setSourceRect(const std::optional< SDL_FRect > &sourceRect)
定义
UIImage.h:29
Shit::UIImage::UIImage
UIImage()=default
Shit::UIImage::onRender
void onRender(const SDL_FRect &screenRect) override
子类实现:在给定屏幕矩形内绘制自身(通过 Renderer 静态 API 绘制)
Shit::UIImage::getTexturePath
const std::string & getTexturePath() const
定义
UIImage.h:27
Shit::UIImage::UIImage
UIImage(const std::string &texturePath)
Shit::UIImage::getSourceRect
const std::optional< SDL_FRect > & getSourceRect() const
定义
UIImage.h:30
Shit::UIImage::~UIImage
~UIImage() override
Shit::UIImage::setFlipped
void setFlipped(bool flipped)
定义
UIImage.h:32
Shit::UIImage::onDestroy
void onDestroy() override
Shit::UIImage::isFlipped
bool isFlipped() const
定义
UIImage.h:33
Shit::UIRendererComponent::UIRendererComponent
UIRendererComponent()
Shit
定义
AudioPlayer.h:10
Shit::Color
RGBA 颜色(每通道 8 位)
定义
Core.h:26
include
ShitEngine
UI
UIImage.h
制作者
1.17.0