Cocos2d-JS 2017.1.13-代码阅读笔记

35 篇文章 0 订阅
28 篇文章 0 订阅
首先安装webStrom。
阅读保卫萝卜代码。
时间机制,首先在MainMenue中的代码:
cc表示Cocos核心,ccs代表CocoStudio,ccui代表CocoStudio的UI控件 
1.加载资源,2.加载背景,3.加载主要的层,4.加载【事件】

事件::cc.Event(时间的对象),cc.EventListener(事件的监听器),cc.EventManager(事件管理器)
在一个界面需要监听事件:
// [事件监听]游戏结束事件
var onGameOverListener = cc.EventListener.create({
    event       : cc.EventListener.CUSTOM,	//事件类型:自定义事件
    target      : this,
    eventName   : jf.EventName.GP_GAME_OVER,
    callback    : this.onGameOver
});
cc.eventManager.addListener(onGameOverListener, this);
==>> 	define.js中是定义的事件,还有config的配置文件
	在webStorm中查找引用用alt + F7;
在条件合适的时候抛出事件:
// [抛出事件]游戏结束
var gameOverEvent = new cc.EventCustom(jf.EventName.GP_GAME_OVER);
gameOverEvent.setUserData({
    isWin : false
});
cc.eventManager.dispatchEvent(gameOverEvent);
cc.EventCustom又是什么呢?如下::
cc.EventCustom = cc.Event.extend(/** @lends cc.EventCustom# */{
    _eventName: null,
    _userData: null,              

    ctor: function (eventName) { //构造函数,事件名字
        cc.Event.prototype.ctor.call(this, cc.Event.CUSTOM);
        this._eventName = eventName;
    },
    setUserData: function (data) { //事件传递的内容,在监听事件的地方
        this._userData = data;
    },
    getUserData: function () {
        return this._userData;
    },
    getEventName: function () {
        return this._eventName;
    }
});
 
 
Button: 
button.addTouchEventListener(this.onLevelButtonEvent, this);
// 事件[关卡按钮]
onLevelButtonEvent : function(sender, type){
    switch (type) {
        case ccui.Widget.TOUCH_ENDED:
		console.log( "TODO" );
	break;
    }
}
// 萝卜,贝塞尔曲线 + 缩放运动
node.setScale(0.7);
node.setPosition(cc.winSize.width / 2 + 320, 120);
var controlPointsTo = [
    cc.p(cc.winSize.width / 2 + 400, 100),
    cc.p(cc.winSize.width / 2 + 120, 0),
    cc.p(cc.winSize.width / 2 + 100, 20)];
var bezierTo = cc.bezierTo(this.actionDuration * 0.8, controlPointsTo);
var scaleTo = cc.scaleTo(this.actionDuration * 0.8, 1);
var spawn = cc.spawn(bezierTo, scaleTo);
node.runAction(spawn);
toFixed:JavaScript中四舍五入,toFixed(2):保留两位小数,四舍五入。
Scene: 	不应该在切换场景时,在将要出现的场景中的ctor构造函数中,做一些内存开销比较大的操作,如:加载资源,
	因为上一个场景还没有退出时,已经加载ctor的操作,否则会导致两个场景的资源都被加载到内存,从而导致
	内存不足,引起程序崩溃。
Layer:	是一个容器,Scene作为Layer的容器,层的最大的作用就是管理场景中的节点。(layerColor)
Sprite:	精灵通过图片创建,通过纹理缓存创建,Texture2D对象。Sprite的属性中就有一个texture的属性。
Tree:	Scene作为根节点,可以有很多个Layer层,不同的层的功能各有不同。
   
   
  1. MoveTo:把某一CCSprite移动到某个位置  
  2. MoveBy:把某一CCSprite移动一段距离,它有一个方法reverse,它让对象按原路径返回 
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值