cocos的plist拆成小图

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
// cocos plist 动画转 拆分成小图
function p2m(farr){
for(let f of farr){
fs.readFile(bpath + f, (err,bu)=>{
if(err){
console.log(err);
return;
}
let jn = xml.xml2js(bu, {compact: true});
console.log(jn);
let imgObj = sharp(bpath + jn.plist.dict.dict[1].string[0]._text);
console.log("basefile");
for(let i=0;i<jn.plist.dict.dict[0].key.length;i++){
let pos = jn.plist.dict.dict[0].dict[i].string[0]._text;
pos = pos.substr(2, pos.length-4).replace("},{",",").split(",");
console.log(jn.plist.dict.dict[0].key[i]._text, pos);

try{
if("true" in jn.plist.dict.dict[0].dict[i]){
imgObj.clone().extract({ left: pos[0]|0, top: pos[1]|0, width: pos[3]|0, height: pos[2]|0 }).rotate(-90).toFile(bpath + "m/"+ jn.plist.dict.dict[0].key[i]._text, (err, info)=>{
if(err) console.log("error", err);
});
}else{
imgObj.clone().extract({ left: pos[0]|0, top: pos[1]|0, width: pos[2]|0, height: pos[3]|0 }).toFile(bpath + "m/"+ jn.plist.dict.dict[0].key[i]._text);
}
}catch(e){
console.error("save", pos[0], pos[1], pos[2], pos[3], e);
}
}
});
}
}

nodejs编写c++插件

nodejs编写c++插件

先有node环境 我创建的是N-API的插件这个可以跨多个的node版本

  • npm init创建插件目录
  • 安装 node-gyp
  • 创建 binding.gyp
1
2
3
4
5
6
7
8
{
"targets": [
{
"target_name": "hello",
"sources": [ "hello.cc" ]
}
]
}
  • 创建hello.cc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <node_api.h>
#include <assert.h>

napi_value Method(napi_env env, napi_callback_info info) {
napi_status status;
napi_value world;
status = napi_create_string_utf8(env, "world", 5, &world);
assert(status == napi_ok);
return world;
}

#define DECLARE_NAPI_METHOD(name, func) \
{ name, 0, func, 0, 0, 0, napi_default, 0 }

napi_value Init(napi_env env, napi_value exports) {
napi_status status;
napi_property_descriptor desc = DECLARE_NAPI_METHOD("hello", Method);
status = napi_define_properties(env, exports, 1, &desc);
assert(status == napi_ok);
return exports;
}

NAPI_MODULE(NODE_GYP_MODULE_NAME, Init)
  • node-gyp configure 创建项目vs的项目文件
  • node-gyp buid 编译项目 如果一切正常没有问题的话 会在build的Release多一个hello.node文件
  • 这个插件可以通过nodejs的js文件包含使用了 运行下面这段代码会出现world的输出
1
2
let t = require("./build/Release/hello.node");
console.log(t.hello());
  • 这样一个简单的c++的node插件就完成了

20190529

工作

  • 上午查询一下分不同渠道的汇总信息
  • 添加苹果支付
  • 后台修改一个小功能,按总净分排序

晚上

  • 把自己以前写的日志添加到项目中
  • 还有把知识点汇总添加进入