From 857bc955bb14b659a94618cb0dd6d39737eba659 Mon Sep 17 00:00:00 2001 From: Joywayer Date: Thu, 27 Aug 2026 00:47:00 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A1=86=E6=9E=B6=EF=BC=9A=E8=AE=A2=E6=AD=A3?= =?UTF-8?q?=20setNumberImage=20=E5=B8=A7=E5=BA=8F=E6=B3=A8=E9=87=8A?= =?UTF-8?q?=E7=9A=84=E8=87=AA=E7=9B=B8=E7=9F=9B=E7=9B=BE=EF=BC=881-based?= =?UTF-8?q?=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 方法头「帧序号:0-9对应数字,10='.'...」与方法体内「字母'b'-'g'→帧10-16」 互相矛盾,且均与代码实际不符:'0' 的 charCode 48 减 47 得帧1,'.'→'b' 的 charCode 98 减 87 得帧11,故正确读法是 1-based:帧1-10=数字0-9、 帧11='.'、帧12='+'、帧13='-'、帧14='x'、帧15='/'、帧16=可变后缀。 补充说明编码表故意跳过 'a'(97-87=10 会与 '9'→帧10 撞帧)的原因。 只改注释,不动一行代码。 Co-Authored-By: Claude Opus 5 (1M context) --- .../gameabc-framework/core/SpriteManager.js | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) 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')