diff --git a/client/js/gameabc-framework/core/SpriteManager.js b/client/js/gameabc-framework/core/SpriteManager.js index 4ed4188..c922da0 100644 --- a/client/js/gameabc-framework/core/SpriteManager.js +++ b/client/js/gameabc-framework/core/SpriteManager.js @@ -1062,7 +1062,7 @@ var SpriteManager = (function() { * * 说明: * - 多帧图片资源需要包含16帧:0123456789.+-x/p - * - 帧序号:0-9对应数字,10='.', 11='+', 12='-', 13='x', 14='/', 15='p'(可变) + * - 帧序号为 1-based:帧1-10对应数字0-9,帧11='.', 帧12='+', 帧13='-', 帧14='x', 帧15='/', 帧16='p'(可变后缀) * - 精灵宽度会根据字符数量自动调整 * - 编码转换:. → b, + → c, - → d, x → e, / → f, 分/倍/张 → g * - 第16帧(p位)为可变内容,需要调用者确保资源图与使用场景匹配 @@ -1088,17 +1088,19 @@ var SpriteManager = (function() { // gameabc引擎帧索引计算(1-based): // - 数字 '0'-'9' → charCode - 47 = 帧1-10 - // - 字母 'b'-'g' → charCode - 87 = 帧10-16 - // + // - 字母 'b'-'g' → charCode - 87 = 帧11-16 + // 编码故意从 'b' 起跳、跳过 'a':若用 'a'(charCode 97) 则 97-87=10, + // 会与 '9' → 帧10 撞帧,所以把 '.' 的编码让给 'b'、从帧11 开始,避免撞车 + // // 编码映射: - // - '.' → 'b' → 帧10 (实际帧11,因为0是帧1) - // - '+' → 'c' → 帧11 (实际帧12) - // - '-' → 'd' → 帧12 (实际帧13) - // - 'x' → 'e' → 帧13 (实际帧14) - // - '/' → 'f' → 帧14 (实际帧15) - // - '分/倍/张' → 'g' → 帧16 (第16帧) - // - // 帧顺序(资源图片):0123456789.+-x/分 (共16帧) + // - '.' → 'b' → 帧11 + // - '+' → 'c' → 帧12 + // - '-' → 'd' → 帧13 + // - 'x' → 'e' → 帧14 + // - '/' → 'f' → 帧15 + // - '分/倍/张' → 'g' → 帧16 (可变后缀) + // + // 帧顺序(资源图片):0123456789.+-x/后缀 (共16帧) var encodedText = textStr .replace(/\./g, 'b') .replace(/\+/g, 'c')