# ttbit_form **Repository Path**: lightsever/ttbit_form ## Basic Information - **Project Name**: ttbit_form - **Description**: ttbit_form 約定 ttbit 的 基本文件包格式與接口 - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-04-29 - **Last Updated**: 2023-05-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ttbit 编辑器 form版本 TTBIT编辑器是一个模仿vscode 的编辑器 该仓库是他的form版本 form版本提出通用的技术规格,打下坚实的基础 ## 标准规格 为像素游戏服务,建立最基础的标准。 ## 坐标系 屏幕 左下角为0,0 具体位置还是主要取决与layer的camera ## 资源 只能加载二进制或者文本格式。 贴图从二进制的Png格式加载。 分为内部资源与外部资源(内部资源为内嵌,外部资源File.IO拿) ### 贴图 贴图本地保存使用不压缩的 png 格式。 在GPU一侧 使用 RGBA32 或者ARGB32 ,R8 或者A8 这几种格式。 设计存取时,统一为 RGBA32 和 A8 贴图区分 固定贴图 与 动态贴图,动态贴图也可以封闭。(有些平台贴图不封闭浪费一份CPU) ### RenderTarget RT在GPU侧,使用ARGB32 (或R8) 格式 读取到内存时,统一为 RGBA32 和 A8 加载图片,左下角为0,0点(flipY) ### 精灵 ttform绘图不使用精灵 使用端自己可以根据如下形式自制 精灵格式如下 Sprite { Texture tex; rect(vec4) UV;//实际uv大小 border(vec4border) Border;//空多少边,如果需要用sprite定位,则总的尺寸是 uv.size+border povit(vec2) Poivt;//基准点 } ### 字体 ttform 规范的字体格式 保存 字型和 Char->每个字符的固定像素转换表 二进制存 ``` Header={ Magic 8byte =TTFONTv1 CharCount 4byte = UINT32 FontSize 1byte = byte FontBorder 1byte } Body =Font * CharCount Font { charcode 4byte width 1byte 实际贴图尺寸 height 1byte 实际贴图尺寸 EmptyX 1sbyte 左侧垫几个空像素 EmptyY 1sbyte 顶部垫几个空像素 往下几个像素是基准线,基准线高度 =fontsize advanceWidth 该字符宽度,可能小于实际宽度FontSize pixel[fontsize*fontsize] 点阵,浪费一点,内存不贵 } ``` 每一个font pixel 块均定义为左下角为0,0 点 使用时没有直接支持,自己组合成精灵