cocos creator常用小知识大杂烩

cocos creator 常用小技巧

这些都是我在网上看到的各位大神总结下来的东西,我记录一下以便在学习中使用,大家有需要的也可以拿去看,感谢各位大佬们的贡献,万分感谢!

1、保存读取数据 cc.sys.localStorage

// 保存数据
cc.sys.localStorage.setItem(key, value);
// 读取数据
cc.sys.localStorage.getItem(key);

2、全局变量

window.Global = {
};
模块访问
module.exports = {
node:null,
bg:null
};

3、获取本地坐标

var bpoint = this.bnode.position;

//获取sprite的全局坐标
let point = spriteParent.convertToWorldSpaceAR(sprite.getPosition());

//spriteParent为sprite的父节点
this.bNode.on(cc.Node.EventType.TOUCH_START, function (event) {
  //获取当前点击的坐标
  var temp = event.getLocation();
  console.log('Mouse down');
}, this);

//使用 setPosition 方法:
this.node.setPosition(100, 50);
this.node.setPosition(cc.v2(100, 50));

4、常见问题:http://blog.csdn.net/qq_28653047/article/details/51880912

5、手动创建一个Sprite

createSprite(name, imgurl){
        var dynamicNode = new cc.Node(name);
        var sp = dynamicNode.addComponent(cc.Sprite);
        var imgUrl = cc.url.raw(imgurl);
        var texture = cc.textureCache.addImage(imgUrl);
        sp.spriteFrame = new cc.SpriteFrame();
        sp.spriteFrame.setTexture(texture);
        return dynamicNode;
    },

6、隐藏控件

this.bgimg.node.active = false;
this.syimg.enabled = false   // 隐藏单个组件

7、动态改图片文理
首先把图片集放在resources目录下面

 let self = this;
        cc.loader.loadRes("cross/cross", cc.SpriteAtlas, function (err, atlas) {
            if (err) {
                cc.error(err.message || err);
                return;
            }
            
            // 动态改变图片
            var frame = atlas.getSpriteFrame("test1");
            spnode.getComponent(cc.Sprite).spriteFrame = frame;
        });

8、动画

// 贝塞尔曲线3点
                var bezier = [cc.p(0,0), cc.p(50,100), cc.p(100,0)];
                var bezierBy = cc.bezierBy(0.8, bezier);
                var fc = cc.callFunc(function(){
                    sp.destroy();
                },this);
                var seq = cc.sequence(bezierBy, fc);
                sp.runAction(seq);

9、Prefab的使用

tmpPrefab:{
            default: null,
            type:cc.Prefab,
        },

或者自己手动创建

cc.loader.loadRes("aa/tmpSprite", function (err, prefab){
    let prebNode = cc.instantiate(prefab);
    self.node.addChild(prebNode);
});

10、移除节点 node.destroy
删除本身this.node.destroy(); 而不是this.destroy();

11、延迟时间

// 3秒后
        setTimeout(function () {
            // do something
        }.bind(this), 3000);

12、父节点获取prefab实例的js内容

pnode.getComponent('testScript').iscore = 100;

13、cc.instantiate
克隆指定的任意类型的对象,或者从 Prefab 实例化出新节点。

var scene = cc.director.getScene();
var node = cc.instantiate(targetNode);
node.parent = scene;

14、一些常用接口

//删除所有子节点
node.removeAllChildren(...);

//查找结点
cc.find("ConstantNode").getComponent("Network");

//获取子节点
node.getChildByName(...);

//获取组件
node.getComponent(cc.Label)

//初始化预制件
cc.instantiate(...);

//随机数
Math.random();

//过多长时间执行一次
this.scheduleOnce(function(){
	...
},5);

//动态加载远程图片
loadImg: function(container,url){
	cc.loader.load(url, function (err, texture) {
		var sprite  = new cc.SpriteFrame(texture);
		container.spriteFrame = sprite;
	});
}

//引入常量类
var Common = require('Common');

//外部引用
module.exports = {
    USER_INFO : 1,//请求用户信息(头像与昵称)
    ...
};

//设为常驻结点
cc.game.addPersistRootNode(this.node);

//切换场景
cc.director.loadScene("...");

//获取场景名称
cc.director.getScene().getName();

//动态添加按钮监听事件
self.wx_btn.node.on(cc.Node.EventType.TOUCH_START, function (event) {
	console.log("TOUCH_START")
});

15、退出游戏(APP、网页)

	cc.game.end();
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值