ShitEngine
基于 C++20 与 SDL3 的轻量级 2D 游戏引擎
载入中...
搜索中...
未找到
UIImage.h
浏览该文件的文档.
1#pragma once
3#include "../Render/Sprite.h"
4#include <string>
5#include <optional>
6
7namespace Shit {
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}
#define SHIT_API
定义 Core.h:14
#define SHIT_REFLECT_BODY(Type)
定义 Macros.h:62
#define SHIT_REFLECT(Mode)
定义 Macros.h:59
#define SHIT_META(...)
定义 Macros.h:68
const Color & getColor() const
定义 UIImage.h:35
void setTexturePath(const std::string &texturePath)
定义 UIImage.h:26
void setColor(const Color &color)
定义 UIImage.h:36
void setSourceRect(const std::optional< SDL_FRect > &sourceRect)
定义 UIImage.h:29
UIImage()=default
void onRender(const SDL_FRect &screenRect) override
子类实现:在给定屏幕矩形内绘制自身(通过 Renderer 静态 API 绘制)
const std::string & getTexturePath() const
定义 UIImage.h:27
UIImage(const std::string &texturePath)
const std::optional< SDL_FRect > & getSourceRect() const
定义 UIImage.h:30
~UIImage() override
void setFlipped(bool flipped)
定义 UIImage.h:32
void onDestroy() override
bool isFlipped() const
定义 UIImage.h:33
定义 AudioPlayer.h:10
RGBA 颜色(每通道 8 位)
定义 Core.h:26