1:node的onload函数在被添加到父节点的时候才会触发,因此实例化节点时,应该实例化的时候,再后面才添加到父节点
如:
var child = cc.instantiate(node)
parent.addChild(child)
child do something
或
var child = cc.instantiate(node)
child.parent = parent
child do something
2: win32工程本地地址:
D:\CocosCreator\resources\cocos2d-x\simulator\win32\
3: 安卓apk的缓存文件地址
/data/data/packagename/files
4: 动态创建材质material
方式一:
var material = cc.Material.getInstantiatedBuiltinMaterial("2d-gray-sprite", this.node) //creator自带的 builtin-2d-gray-sprite
this.node.getComponent(cc.Sprite).setMaterial(0, material)
方式二:
var material = cc.Material.getInstantiatedMaterial(this.otherNode.getComponent(cc.Sprite).sharedMaterials[0], this.node)
this.node.getComponent(cc.Sprite).setMaterial(0, material)
方式三:
var self = this
cc.loader.loadRes(materialPath, cc.Material, function(err, res) {
var material = cc.Material.getInstantiatedMaterial(res, self.node)
self.node.getComponent(cc.Sprite).setMaterial(0, material)
})
5: 拷贝节点
var copyNode = cc.instantiate(this.node)
6: 当涉及上一层childNode,onload函数时,设置parent不一定会调用onload函数,此时可以把代码放到start周期函数里处理
var child = cc.instantiate("child")
child.parent = childNode
改
start() {
var child = cc.instantiate("child")
child.parent = childNode
}
7:初始化的操作最好放在start,此时节点下的全部节点的脚本都调用到了onLoad函数,特别是通信机制的内容,在onEnable时不保证节点下面的脚本都能调用到
8:按钮增大点击区域
图片不放在按钮的sprite控件里,而是在按钮添加一个图片的子节点,设置按钮的size大小控制增加触摸区域
9:win32的缓存文件路径 C:/Users/admin/AppData/Local/hyl/
10:win32的本地工程是与android-studio工程同级的目录 proj.win32
11:win32的本地路径和android的本地编译是一样的,都是使用默认的入口main函数,因此调试安卓环境时,可以直接用win32环境直接调试
12: spine换皮
选中spine节点控件后,会有一个生产挂点的按钮,点击后会在节点下面生成各个挂点,可以在挂载节点下面挂上节点,看下效果,如武器
cc.resources.load("prefab/weapon", cc.Prefab, (err, prefab)=>{
let weapon = cc.instantiate(prefab)
let attactUtil = this.spineNode.attachUtil
let atteNode = attactUtil.generateAttachedNodes("gun")[0]
atteNode.addChild(weapon)
})