框架:订正 setNumberImage 帧序注释的自相矛盾(1-based)
方法头「帧序号: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) <noreply@anthropic.com>
This commit is contained in:
@@ -1062,7 +1062,7 @@ var SpriteManager = (function() {
|
|||||||
*
|
*
|
||||||
* 说明:
|
* 说明:
|
||||||
* - 多帧图片资源需要包含16帧:0123456789.+-x/p
|
* - 多帧图片资源需要包含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
|
* - 编码转换:. → b, + → c, - → d, x → e, / → f, 分/倍/张 → g
|
||||||
* - 第16帧(p位)为可变内容,需要调用者确保资源图与使用场景匹配
|
* - 第16帧(p位)为可变内容,需要调用者确保资源图与使用场景匹配
|
||||||
@@ -1088,17 +1088,19 @@ var SpriteManager = (function() {
|
|||||||
|
|
||||||
// gameabc引擎帧索引计算(1-based):
|
// gameabc引擎帧索引计算(1-based):
|
||||||
// - 数字 '0'-'9' → charCode - 47 = 帧1-10
|
// - 数字 '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)
|
// - '.' → 'b' → 帧11
|
||||||
// - '+' → 'c' → 帧11 (实际帧12)
|
// - '+' → 'c' → 帧12
|
||||||
// - '-' → 'd' → 帧12 (实际帧13)
|
// - '-' → 'd' → 帧13
|
||||||
// - 'x' → 'e' → 帧13 (实际帧14)
|
// - 'x' → 'e' → 帧14
|
||||||
// - '/' → 'f' → 帧14 (实际帧15)
|
// - '/' → 'f' → 帧15
|
||||||
// - '分/倍/张' → 'g' → 帧16 (第16帧)
|
// - '分/倍/张' → 'g' → 帧16 (可变后缀)
|
||||||
//
|
//
|
||||||
// 帧顺序(资源图片):0123456789.+-x/分 (共16帧)
|
// 帧顺序(资源图片):0123456789.+-x/后缀 (共16帧)
|
||||||
var encodedText = textStr
|
var encodedText = textStr
|
||||||
.replace(/\./g, 'b')
|
.replace(/\./g, 'b')
|
||||||
.replace(/\+/g, 'c')
|
.replace(/\+/g, 'c')
|
||||||
|
|||||||
Reference in New Issue
Block a user