![]() |
ShitEngine 1.4.2
基于 C++20 与 SDL3 的轻量级 2D 游戏引擎
|
类 | |
| 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 |
| 棱柱关节:沿局部轴相对滑动(活塞/滑轨) | |
| using Json = nlohmann::json |
| using Vector2 = glm::vec2 |
|
strong |
|
strong |
|
strong |
键盘键码表(基于 SDL 扫描码,值为物理键位、不随键盘布局变化)
与 Input 的三态查询配合使用:Input::IsKeyDown(KeyCode::Space)。 推荐优先用动作映射(Input::IsActionDown("Jump"))解耦具体键位—— 键位到动作的绑定在 settings.json / 编辑器项目设置中配置,玩家可改键。
|
strong |
|
strong |
| Component * ComponentRefLookup | ( | uint64_t | uuid | ) |
内部:从当前上下文的活跃场景按 uuid 查组件(实现在 ComponentRef.cpp,跨 TU/DLL 共享)
|
inline |
| uint64_t GenerateComponentUuid | ( | ) |
生成随机组件 UUID(64 位;0 保留为空引用,永不返回 0)
| std::uint64_t GenerateResourceUuid | ( | ) |
会话级资源 UUID 生成(与组件 UUID 同源的随机数方案;持久化资产注册表留待后续)
|
inline |
计算成员指针相对于类基址的偏移量(供反射注册代码使用) 用法: memberOffset(&MyClass::myField) 需要通过 friend 声明获取 private/protected 成员的访问权
|
inline |
|
strong |
关节类型(决定 Box2D 约束行为)
距离关节:保持两锚点间固定距离(可做弹簧)
| enum JointType Prismatic = 3 |
棱柱关节:沿局部轴相对滑动(活塞/滑轨)
| enum JointType Revolute = 1 |
旋转/铰链关节:两刚体绕锚点相对旋转
| enum JointType Weld = 2 |
焊接关节:把两刚体刚性连在一起(可做软体)