ShitEngine 1.4.2
基于 C++20 与 SDL3 的轻量级 2D 游戏引擎
载入中...
搜索中...
未找到
Shit 命名空间参考

类

struct  ActionBinding
 动作绑定配置 更多...
class  Animation
 逐帧动画数据 更多...
struct  AnimationClip
 动画剪辑(可序列化数据,P28) 更多...
class  AnimationComponent
 动画组件 / Animator(可序列化多剪辑版本) 更多...
class  Animator
 动画状态机 / Animator(P28) 更多...
struct  AnimatorParameter
 动画参数(可序列化) 更多...
struct  AnimatorState
 状态机节点(可序列化) 更多...
struct  AnimatorTransition
 状态间转换(可序列化;同一状态可有多条,按序求值) 更多...
struct  AnimatorTransitionCondition
 转换的单个条件(引用参数名) 更多...
struct  AnimFrame
 动画帧(参考 Unity:每帧引用一个 Sprite = 纹理路径 + 源矩形) texturePath 空 = 沿用 SpriteRenderer 当前纹理(兼容动态 play(name, sheet, frames) API) 更多...
class  Audio
 音频:封装 MIX_Audio*(加载需 mixer 就绪,由管理器注入) 更多...
class  AudioPlayer
class  AudioSource
 音频播放组件 —— 挂在对象上播放场景音频 更多...
class  AudioTrack
class  AudioTrackGroup
struct  AxisBinding
 轴绑定配置 更多...
class  Behavior
 行为基类 —— 用于编写自定义游戏逻辑 更多...
class  BehaviorSystem
 Behavior 驱动系统 更多...
class  BoxCollider2D
 盒子碰撞体组件 更多...
class  CameraComponent
 相机组件,定义"从哪个角度观察世界" 更多...
class  CircleCollider2D
 圆形碰撞体组件 更多...
struct  Color
 RGBA 颜色(每通道 8 位) 更多...
class  Component
 组件基类 更多...
class  ComponentRef
 可序列化的组件引用(存 UUID,懒解析,自动失效) 更多...
class  Config
 配置管理类 更多...
class  EngineContext
 引擎上下文:持有全部子系统实例 更多...
struct  EnumValue
 枚举常量 更多...
struct  Event
 事件基类,所有自定义事件须继承此结构体 更多...
class  EventBus
 事件总线,缓冲队列模式 更多...
struct  FieldInfo
struct  FieldMeta
class  Font
 字体:封装 TTF_Font*(按路径+字号复合键缓存) 更多...
struct  FontKey
 字体缓存键:同字体不同字号各缓存一份 更多...
struct  FontKeyHash
class  Game
 引擎主控类 更多...
class  GameObject
 游戏物体类 更多...
class  Input
 输入管理(单例) 更多...
struct  InputMappingsConfig
 输入映射配置 更多...
class  Joint2D
 2D 物理关节组件 更多...
class  Log
 日志封装类 更多...
struct  MethodInfo
 方法信息(由 SHIT_METHOD 生成) 更多...
class  PhysicsSystem2D
 2D 物理系统 更多...
class  PluginManager
 动态插件管理器(引擎级共享:Runtime 与编辑器共用) 更多...
class  Prefab
 预制体,可重复生成相同配置的 GameObject 更多...
struct  ProjectConfig
 项目配置 更多...
struct  PropertyInfo
 属性信息(由 SHIT_PROPERTY 生成,getter/setter 对) 更多...
struct  RangeMeta
 字段元数据(由 SHIT_META 生成,供编辑器属性面板用) 更多...
struct  Rect
 Rectangle struct (float precision), with SDL_FRect conversion 更多...
class  Renderer
 渲染器,封装 SDL3 绘制 API 更多...
class  RendererComponent
 渲染组件基类 更多...
class  RenderSystem
 渲染系统 更多...
class  Resource
 资源基类 —— 所有引擎资产(Texture / Font / Audio / 自定义类型)的统一封装 更多...
class  ResourceManager
 资源管理器(引擎上下文持有)—— 模板化统一门面 更多...
struct  ResourceTraits
struct  ResourceTraits< Audio >
struct  ResourceTraits< Font >
struct  ResourceTraits< Texture >
class  RigidBody2D
 刚体组件 更多...
class  Scene
 场景类 更多...
class  SceneManager
 场景管理器(单例) 更多...
class  SceneSerializer
 全场景序列化器 —— .scene 文件的事实标准(v2) 更多...
class  Sprite
 精灵数据,描述"画什么" 更多...
class  SpriteRenderer
 精灵组件 更多...
class  SpriteSheet
 Sprite sheet grid cutter 更多...
class  System
 System 基类 更多...
class  TextInputGate
 文本输入聚焦门(进程级单例) 更多...
class  Texture
 纹理:封装 SDL_Texture*(渲染用;加载需渲染器已初始化) 更多...
class  Tilemap
 2D 瓦片地图组件 更多...
class  Time
 时间管理类 更多...
class  TransformComponent
 变换组件,决定 GameObject 的位置 / 缩放 / 旋转 更多...
class  TypedCacheBase
 类型擦除缓存接口 —— ResourceManager 按资源类型注册缓存,经此统一遍历/清理 更多...
class  TypedResourceCache
 类型化缓存 —— 统一「查缓存 → 工厂创建 → 加载 → 插入」模式 更多...
struct  TypeInfo
class  TypeInfoBuilder
class  TypeRegistry
class  UIButton
 UI 按钮控件,基于鼠标 Raycasting 触发交互 更多...
class  UICanvas
 UI 层级根节点 更多...
class  UIImage
 UI 图片控件,在屏幕空间绘制一张精灵 更多...
class  UIRendererComponent
 UI 渲染控件基类(对应游戏世界的 RendererComponent) 更多...
class  UIRenderSystem
 UI 渲染系统 更多...
class  UIText
 UI 文字控件,使用 SDL_ttf 渲染文字到纹理 更多...
class  UITextArea
 多行文本输入区域 更多...
class  UITextBox
 单行文本输入框 更多...
class  UITextInput
 文本输入控件抽象基类 更多...
class  UITransform
 UI 专用变换组件(参考 Unity RectTransform,但不引入 Canvas Scaler) 更多...
class  WeakComponentRef
 组件弱引用 更多...
class  Window
 窗口管理类 更多...
struct  WindowConfig
 窗口配置 更多...

类型定义

using Json = nlohmann::json
using Vector2 = glm::vec2

枚举

enum class  AnimatorParamType : int {
  Float = 0 , Bool = 1 ,
  Trigger = 2
}
 动画参数类型(状态机条件变量);以 int 存 JSON 载体,无需反射 更多...
enum class  AnimatorConditionType : int {
  FloatGt = 0 , FloatLt = 1 ,
  FloatEq = 2 , Bool = 3 ,
  Trigger = 4
}
 条件类型(转换求值);以 int 存 JSON 载体,无需反射 更多...
enum class  KeyCode : int {
  Unknown = SDL_SCANCODE_UNKNOWN , A = SDL_SCANCODE_A ,
  B = SDL_SCANCODE_B , C = SDL_SCANCODE_C ,
  D = SDL_SCANCODE_D , E = SDL_SCANCODE_E ,
  F = SDL_SCANCODE_F , G = SDL_SCANCODE_G ,
  H = SDL_SCANCODE_H , I = SDL_SCANCODE_I ,
  J = SDL_SCANCODE_J , K = SDL_SCANCODE_K ,
  L = SDL_SCANCODE_L , M = SDL_SCANCODE_M ,
  N = SDL_SCANCODE_N , O = SDL_SCANCODE_O ,
  P = SDL_SCANCODE_P , Q = SDL_SCANCODE_Q ,
  R = SDL_SCANCODE_R , S = SDL_SCANCODE_S ,
  T = SDL_SCANCODE_T , U = SDL_SCANCODE_U ,
  V = SDL_SCANCODE_V , W = SDL_SCANCODE_W ,
  X = SDL_SCANCODE_X , Y = SDL_SCANCODE_Y ,
  Z = SDL_SCANCODE_Z , Num1 = SDL_SCANCODE_1 ,
  Num2 = SDL_SCANCODE_2 , Num3 = SDL_SCANCODE_3 ,
  Num4 = SDL_SCANCODE_4 , Num5 = SDL_SCANCODE_5 ,
  Num6 = SDL_SCANCODE_6 , Num7 = SDL_SCANCODE_7 ,
  Num8 = SDL_SCANCODE_8 , Num9 = SDL_SCANCODE_9 ,
  Num0 = SDL_SCANCODE_0 , Return = SDL_SCANCODE_RETURN ,
  Escape = SDL_SCANCODE_ESCAPE , Backspace = SDL_SCANCODE_BACKSPACE ,
  Tab = SDL_SCANCODE_TAB , Space = SDL_SCANCODE_SPACE ,
  Minus = SDL_SCANCODE_MINUS , Equals = SDL_SCANCODE_EQUALS ,
  LeftBracket = SDL_SCANCODE_LEFTBRACKET , RightBracket = SDL_SCANCODE_RIGHTBRACKET ,
  Backslash = SDL_SCANCODE_BACKSLASH , NonUSH = SDL_SCANCODE_NONUSHASH ,
  Semicolon = SDL_SCANCODE_SEMICOLON , Apostrophe = SDL_SCANCODE_APOSTROPHE ,
  Grave = SDL_SCANCODE_GRAVE , Comma = SDL_SCANCODE_COMMA ,
  Period = SDL_SCANCODE_PERIOD , Slash = SDL_SCANCODE_SLASH ,
  CapsLock = SDL_SCANCODE_CAPSLOCK , F1 = SDL_SCANCODE_F1 ,
  F2 = SDL_SCANCODE_F2 , F3 = SDL_SCANCODE_F3 ,
  F4 = SDL_SCANCODE_F4 , F5 = SDL_SCANCODE_F5 ,
  F6 = SDL_SCANCODE_F6 , F7 = SDL_SCANCODE_F7 ,
  F8 = SDL_SCANCODE_F8 , F9 = SDL_SCANCODE_F9 ,
  F10 = SDL_SCANCODE_F10 , F11 = SDL_SCANCODE_F11 ,
  F12 = SDL_SCANCODE_F12 , PrintScreen = SDL_SCANCODE_PRINTSCREEN ,
  ScrollLock = SDL_SCANCODE_SCROLLLOCK , Pause = SDL_SCANCODE_PAUSE ,
  Insert = SDL_SCANCODE_INSERT , Home = SDL_SCANCODE_HOME ,
  PageUp = SDL_SCANCODE_PAGEUP , Delete = SDL_SCANCODE_DELETE ,
  End = SDL_SCANCODE_END , PageDown = SDL_SCANCODE_PAGEDOWN ,
  Right = SDL_SCANCODE_RIGHT , Left = SDL_SCANCODE_LEFT ,
  Down = SDL_SCANCODE_DOWN , Up = SDL_SCANCODE_UP ,
  NumLockClear = SDL_SCANCODE_NUMLOCKCLEAR , KP_Divide = SDL_SCANCODE_KP_DIVIDE ,
  KP_Multiply = SDL_SCANCODE_KP_MULTIPLY , KP_Minus = SDL_SCANCODE_KP_MINUS ,
  KP_Plus = SDL_SCANCODE_KP_PLUS , KP_Enter = SDL_SCANCODE_KP_ENTER ,
  KP_1 = SDL_SCANCODE_KP_1 , KP_2 = SDL_SCANCODE_KP_2 ,
  KP_3 = SDL_SCANCODE_KP_3 , KP_4 = SDL_SCANCODE_KP_4 ,
  KP_5 = SDL_SCANCODE_KP_5 , KP_6 = SDL_SCANCODE_KP_6 ,
  KP_7 = SDL_SCANCODE_KP_7 , KP_8 = SDL_SCANCODE_KP_8 ,
  KP_9 = SDL_SCANCODE_KP_9 , KP_0 = SDL_SCANCODE_KP_0 ,
  KP_Period = SDL_SCANCODE_KP_PERIOD , NonUSBackslash = SDL_SCANCODE_NONUSBACKSLASH ,
  Application = SDL_SCANCODE_APPLICATION , Power = SDL_SCANCODE_POWER ,
  KP_Equals = SDL_SCANCODE_KP_EQUALS , F13 = SDL_SCANCODE_F13 ,
  F14 = SDL_SCANCODE_F14 , F15 = SDL_SCANCODE_F15 ,
  F16 = SDL_SCANCODE_F16 , F17 = SDL_SCANCODE_F17 ,
  F18 = SDL_SCANCODE_F18 , F19 = SDL_SCANCODE_F19 ,
  F20 = SDL_SCANCODE_F20 , F21 = SDL_SCANCODE_F21 ,
  F22 = SDL_SCANCODE_F22 , F23 = SDL_SCANCODE_F23 ,
  F24 = SDL_SCANCODE_F24 , Sleep = SDL_SCANCODE_SLEEP ,
  Wake = SDL_SCANCODE_WAKE , MediaPlay = SDL_SCANCODE_MEDIA_PLAY ,
  MediaPause = SDL_SCANCODE_MEDIA_PAUSE , MediaRecord = SDL_SCANCODE_MEDIA_RECORD ,
  MediaNext = SDL_SCANCODE_MEDIA_NEXT_TRACK , MediaPrev = SDL_SCANCODE_MEDIA_PREVIOUS_TRACK ,
  MediaStop = SDL_SCANCODE_MEDIA_STOP , MediaPlayPause = SDL_SCANCODE_MEDIA_PLAY_PAUSE ,
  LCtrl = SDL_SCANCODE_LCTRL , LShift = SDL_SCANCODE_LSHIFT ,
  LAlt = SDL_SCANCODE_LALT , LGui = SDL_SCANCODE_LGUI ,
  RCtrl = SDL_SCANCODE_RCTRL , RShift = SDL_SCANCODE_RSHIFT ,
  RAlt = SDL_SCANCODE_RALT , RGui = SDL_SCANCODE_RGUI ,
  Mode = SDL_SCANCODE_MODE , Reserved = SDL_SCANCODE_RESERVED ,
  Count = SDL_SCANCODE_COUNT
}
 键盘键码表(基于 SDL 扫描码,值为物理键位、不随键盘布局变化) 更多...
enum class  MouseButton : int {
  Left = SDL_BUTTON_LEFT , Right = SDL_BUTTON_RIGHT ,
  Middle = SDL_BUTTON_MIDDLE , XButton1 = SDL_BUTTON_X1 ,
  XButton2 = SDL_BUTTON_X2 , Count = 6
}
 鼠标按键码(左/右/中键 + 两个侧键) 更多...
enum class  ResourceState {
  Unloaded , Loaded ,
  Failed
}
 资源加载状态 更多...

函数

uint64_t GenerateComponentUuid ()
 生成随机组件 UUID(64 位;0 保留为空引用,永不返回 0)
Component * ComponentRefLookup (uint64_t uuid)
 内部:从当前上下文的活跃场景按 uuid 查组件(实现在 ComponentRef.cpp,跨 TU/DLL 共享)
std::string DemangleTypeName (const char *mangled)
template<typename T, typename M>
size_t memberOffset (M T::*member)
 计算成员指针相对于类基址的偏移量(供反射注册代码使用) 用法: memberOffset(&MyClass::myField) 需要通过 friend 声明获取 private/protected 成员的访问权
TypeInfoBuilder ReflectType (const char *name, size_t size)
std::uint64_t GenerateResourceUuid ()
 会话级资源 UUID 生成(与组件 UUID 同源的随机数方案;持久化资产注册表留待后续)

变量

enum JointType JointType
 关节类型(决定 Box2D 约束行为)
enum JointType Revolute = 1
 旋转/铰链关节:两刚体绕锚点相对旋转
enum JointType Weld = 2
 焊接关节:把两刚体刚性连在一起(可做软体)
enum JointType Prismatic = 3
 棱柱关节:沿局部轴相对滑动(活塞/滑轨)

类型定义说明

◆ Json

using Json = nlohmann::json

◆ Vector2

using Vector2 = glm::vec2

枚举类型说明

◆ AnimatorConditionType

enum class AnimatorConditionType : int
strong

条件类型(转换求值);以 int 存 JSON 载体,无需反射

枚举值
FloatGt 

float > threshold

FloatLt 

float < threshold

FloatEq 

|float - threshold| < 0.001

Bool 

bool == boolValue

Trigger 

trigger 已触发

◆ AnimatorParamType

enum class AnimatorParamType : int
strong

动画参数类型(状态机条件变量);以 int 存 JSON 载体,无需反射

枚举值
Float 

浮点(比较 threshold)

Bool 

布尔(比较 boolValue)

Trigger 

触发器(一次性触发,转换求值后消耗)

◆ KeyCode

enum class KeyCode : int
strong

键盘键码表(基于 SDL 扫描码,值为物理键位、不随键盘布局变化)

与 Input 的三态查询配合使用:Input::IsKeyDown(KeyCode::Space)。 推荐优先用动作映射(Input::IsActionDown("Jump"))解耦具体键位—— 键位到动作的绑定在 settings.json / 编辑器项目设置中配置,玩家可改键。

枚举值
Unknown 
A 
B 
C 
D 
E 
F 
G 
H 
I 
J 
K 
L 
M 
N 
O 
P 
Q 
R 
S 
T 
U 
V 
W 
X 
Y 
Z 
Num1 
Num2 
Num3 
Num4 
Num5 
Num6 
Num7 
Num8 
Num9 
Num0 
Return 
Escape 
Backspace 
Tab 
Space 
Minus 
Equals 
LeftBracket 
RightBracket 
Backslash 
NonUSH 
Semicolon 
Apostrophe 
Grave 
Comma 
Period 
Slash 
CapsLock 
F1 
F2 
F3 
F4 
F5 
F6 
F7 
F8 
F9 
F10 
F11 
F12 
PrintScreen 
ScrollLock 
Pause 
Insert 
Home 
PageUp 
Delete 
End 
PageDown 
Right 
Left 
Down 
Up 
NumLockClear 
KP_Divide 
KP_Multiply 
KP_Minus 
KP_Plus 
KP_Enter 
KP_1 
KP_2 
KP_3 
KP_4 
KP_5 
KP_6 
KP_7 
KP_8 
KP_9 
KP_0 
KP_Period 
NonUSBackslash 
Application 
Power 
KP_Equals 
F13 
F14 
F15 
F16 
F17 
F18 
F19 
F20 
F21 
F22 
F23 
F24 
Sleep 
Wake 
MediaPlay 
MediaPause 
MediaRecord 
MediaNext 
MediaPrev 
MediaStop 
MediaPlayPause 
LCtrl 
LShift 
LAlt 
LGui 
RCtrl 
RShift 
RAlt 
RGui 
Mode 
Reserved 
Count 

◆ MouseButton

enum class MouseButton : int
strong

鼠标按键码(左/右/中键 + 两个侧键)

枚举值
Left 
Right 
Middle 
XButton1 
XButton2 
Count 

◆ ResourceState

enum class ResourceState
strong

资源加载状态

枚举值
Unloaded 
Loaded 
Failed 

函数说明

◆ ComponentRefLookup()

Component * ComponentRefLookup ( uint64_t uuid)

内部:从当前上下文的活跃场景按 uuid 查组件(实现在 ComponentRef.cpp,跨 TU/DLL 共享)

◆ DemangleTypeName()

std::string DemangleTypeName ( const char * mangled)
inline

◆ GenerateComponentUuid()

uint64_t GenerateComponentUuid ( )

生成随机组件 UUID(64 位;0 保留为空引用,永不返回 0)

◆ GenerateResourceUuid()

std::uint64_t GenerateResourceUuid ( )

会话级资源 UUID 生成(与组件 UUID 同源的随机数方案;持久化资产注册表留待后续)

◆ memberOffset()

template<typename T, typename M>
size_t memberOffset ( M T::* member)
inline

计算成员指针相对于类基址的偏移量(供反射注册代码使用) 用法: memberOffset(&MyClass::myField) 需要通过 friend 声明获取 private/protected 成员的访问权

◆ ReflectType()

TypeInfoBuilder ReflectType ( const char * name,
size_t size )
inline

变量说明

◆ JointType

enum JointType JointType
strong

关节类型(决定 Box2D 约束行为)

距离关节:保持两锚点间固定距离(可做弹簧)

◆ Prismatic

enum JointType Prismatic = 3

棱柱关节:沿局部轴相对滑动(活塞/滑轨)

◆ Revolute

enum JointType Revolute = 1

旋转/铰链关节:两刚体绕锚点相对旋转

◆ Weld

enum JointType Weld = 2

焊接关节:把两刚体刚性连在一起(可做软体)