fast-cocos 1.0.8 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/copy-assets.json +8 -0
- package/dist/audio/src/audio.js +7 -0
- package/dist/audio/src/index.js +4 -0
- package/dist/bmfont/src/BMFont.js +9 -0
- package/dist/bmfont/src/index.js +4 -0
- package/dist/index.js +24 -1
- package/dist/json/src/JsonUtils.js +50 -0
- package/dist/json/src/index.js +10 -7
- package/dist/logger.js +21 -0
- package/dist/robot/src/Robot.js +9 -3
- package/dist/robot/src/index.js +4 -0
- package/dist/ttf/jar/font.jar +0 -0
- package/dist/ttf/jar/sfnttool.jar +0 -0
- package/dist/ttf/py/modify_fonts.py +251 -0
- package/dist/ttf/py/modify_fonts1.py +284 -0
- package/dist/ttf/src/TTF.js +83 -0
- package/dist/ttf/src/index.js +34 -0
- package/dist/utils.js +4 -0
- package/dist/xlsx/src/XlsxParser.js +26 -4
- package/dist/xlsx/src/index.js +4 -0
- package/dist/xxteakey/src/index.js +4 -0
- package/package.json +1 -1
- package/dist/json/src/JSON.js +0 -111
package/dist/json/src/JSON.js
DELETED
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.bmfont = void 0;
|
|
7
|
-
const fs_1 = __importDefault(require("fs"));
|
|
8
|
-
const path_1 = __importDefault(require("path"));
|
|
9
|
-
const spritesmith_1 = __importDefault(require("spritesmith"));
|
|
10
|
-
const utils_1 = require("../../utils");
|
|
11
|
-
class BMFont {
|
|
12
|
-
/**
|
|
13
|
-
* 解析bmfont
|
|
14
|
-
* @param options 选项
|
|
15
|
-
*/
|
|
16
|
-
parse(options) {
|
|
17
|
-
const subDirs = utils_1.utils.getSubDirsSync(options.source);
|
|
18
|
-
for (const dir of subDirs) {
|
|
19
|
-
const modelName = path_1.default.basename(dir);
|
|
20
|
-
const outputDir = path_1.default.join(options.output, modelName, "bmfont");
|
|
21
|
-
// 所有字体目录
|
|
22
|
-
utils_1.utils
|
|
23
|
-
.getSubDirsSync(dir)
|
|
24
|
-
.filter((dir) => utils_1.utils.containsFileExt(dir, ".png"))
|
|
25
|
-
.forEach((fontDir) => this.run(fontDir, outputDir));
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
run(fontDir, outputDir) {
|
|
29
|
-
const fontName = path_1.default.basename(fontDir);
|
|
30
|
-
const pngPath = path_1.default.join(outputDir, `${fontName}.png`);
|
|
31
|
-
const fntPath = path_1.default.join(outputDir, `${fontName}.fnt`);
|
|
32
|
-
const config = {
|
|
33
|
-
src: utils_1.utils.findFiles(fontDir, [".png"]),
|
|
34
|
-
exportOpts: {
|
|
35
|
-
format: "png"
|
|
36
|
-
},
|
|
37
|
-
algorithm: "left-right"
|
|
38
|
-
};
|
|
39
|
-
spritesmith_1.default.run(config, (err, result) => {
|
|
40
|
-
if (err) {
|
|
41
|
-
console.log(err);
|
|
42
|
-
return;
|
|
43
|
-
}
|
|
44
|
-
// console.log("result:", result);
|
|
45
|
-
utils_1.utils.mkdir(path_1.default.dirname(pngPath));
|
|
46
|
-
fs_1.default.writeFileSync(pngPath, result.image);
|
|
47
|
-
console.info("\x1b[35m%s\x1b[0m", "生成png文件:" + pngPath);
|
|
48
|
-
// 字符头
|
|
49
|
-
let maxHeight = 0;
|
|
50
|
-
// 字符
|
|
51
|
-
let chars = "";
|
|
52
|
-
const { coordinates } = result;
|
|
53
|
-
for (const key in coordinates) {
|
|
54
|
-
if (Object.hasOwnProperty.call(coordinates, key)) {
|
|
55
|
-
let fileName = path_1.default.basename(key, path_1.default.extname(key));
|
|
56
|
-
/**
|
|
57
|
-
* 这里对文件名字进行判断:
|
|
58
|
-
* 由于部分字符,例如冒号:是无法做文件名字的,因此,这里为了兼容处理,可以使用16进制进行文件命名;
|
|
59
|
-
* 如果是0x开头的命名,这里默认为该文件是16进制文件
|
|
60
|
-
*/
|
|
61
|
-
let id = fileName.charCodeAt(0);
|
|
62
|
-
if (fileName.indexOf("0x") === 0) {
|
|
63
|
-
// 16进制字符
|
|
64
|
-
const hexStr = fileName.split("0x")[1];
|
|
65
|
-
id = this.hex2int(hexStr);
|
|
66
|
-
fileName = String.fromCharCode(id);
|
|
67
|
-
}
|
|
68
|
-
else {
|
|
69
|
-
// 标准的英文字符
|
|
70
|
-
id = fileName.charCodeAt(0);
|
|
71
|
-
}
|
|
72
|
-
const { x, y, width, height } = coordinates[key];
|
|
73
|
-
chars += `char id=${id} x=${x} y=${y} width=${width} height=${height} `;
|
|
74
|
-
chars += `xoffset=0 yoffset=0 xadvance=${width} page=0 chnl=15 letter="${fileName}"\n`;
|
|
75
|
-
maxHeight = Math.max(maxHeight, height);
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
// 头部说明
|
|
79
|
-
const { width, height } = result.properties;
|
|
80
|
-
let header = `info face="" size=${maxHeight} bold=0 italic=0 charset="" unicode=1 stretchH=200 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1 outline=0\n`;
|
|
81
|
-
header += `common lineHeight=${maxHeight} base=${maxHeight} scaleW=${width} scaleH=${height} pages=1 packed=0\n`;
|
|
82
|
-
header += `page id=0 file="${fontName}.png"\n`;
|
|
83
|
-
header += `chars count=${Object.keys(coordinates).length}\n`;
|
|
84
|
-
const fntStr = header + chars + "kernings count=0";
|
|
85
|
-
fs_1.default.writeFileSync(fntPath, fntStr);
|
|
86
|
-
console.info("\x1b[35m%s\x1b[0m", "生成fnt文件:" + fntPath);
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* 将十六进制转换为整数
|
|
91
|
-
* @param {string} hex 十六进制
|
|
92
|
-
* */
|
|
93
|
-
hex2int(hex) {
|
|
94
|
-
let len = hex.length, a = new Array(len), code;
|
|
95
|
-
for (let i = 0; i < len; i++) {
|
|
96
|
-
code = hex.charCodeAt(i);
|
|
97
|
-
if (48 <= code && code < 58) {
|
|
98
|
-
code -= 48;
|
|
99
|
-
}
|
|
100
|
-
else {
|
|
101
|
-
code = (code & 0xdf) - 65 + 10;
|
|
102
|
-
}
|
|
103
|
-
a[i] = code;
|
|
104
|
-
}
|
|
105
|
-
return a.reduce(function (acc, c) {
|
|
106
|
-
acc = 16 * acc + c;
|
|
107
|
-
return acc;
|
|
108
|
-
}, 0);
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
exports.bmfont = new BMFont();
|