cocos creator 注意事项,小技巧(不定期更新)

1、ScrollView的使用:编辑器创建scrollView组件的时候下面有个content,默认里面有个item,比较坑的是,只有当content的大小大于view的时候才可以滑动,半屏幕是不可滑动的(之前写lua就没遇到,今天放了一个控件,测试了半天不能滑动,,,)

2、ScrollView中滑动的时候会触发item中注册的touch事件,记得勾选编辑器界面的Cancel Inner Events

3、屏蔽点击事件,教程都是用stopPropagation函数来停止向上传递,然而,这个只能屏蔽的是touch事件,可别注册成了mouse或者是click事件哦!

4、使用cocos creator 2.0preview版本的坑,因为同事说这个版本修复了音效的bug,我去下载,遇到的坑。

    (1)、创建的界面的组件不能拖动改变顺序。。。

    (2)、切换场景切回来会报错。。。

5、设置游戏帧率cc.game.setFrameRate(),关于cc.game里面还有很多接口哦,可以自己点进去看看。

6、进度条范围是0~1

7、子域节点颜色不可更改

8、访问服务器静态文件的需要用跨域访问,直接访问报错(有空整理)

9、添加动画要打标记,否则停止动画的时候如果重复添加就会停不下来

10、九宫拉伸设置了一边 对边也需要设置,至少1pix,否则会出现边界融合的现象

11、1.9.1编译项目找子域启动文件是sub,1.9.3及以后找的启动文件是index

12、Graphic画了之后不可以改变颜色,可以保存轨迹重新画一遍来改变颜色。

13、cc.view.setResizeCallback只能注册一个回调函数,重新注册会把之前注册的替换掉,旋转屏幕只会触发最后一个注册的函数。

14、切记不要动态加载预制体,慢的更shi一样,预制体不是分块的概念,重复创建的才要建预制体,其他都挂场景上面,而且预制体要拖到代码组件里面(我之前是这么理解的,每个界面弄一个预制体挂脚本然后加载和shi一样慢)。

15、挂有动画的节点在播放动画的时候在父节点执行removeAllChildren(True)也清不干净(执行的时候可能清除 ,下次在波的时候重新创建节点就会多出来),要把Clip删除掉,

100、回调时候的内部临时函数定义如下,直接function定义bind(this)会报错

let unlockCallback = function(success:boolean, sDesc){
   
}.bind(this)

游戏开发小技巧公式:

1.道具cd倒计时(仿王者技能cd):

refreshTime(iTime){
    let iUserItemData:any = Ctrls.fight.getItemById(this.itemId)
    if(iTime > 0){
        this.itemSprite.node.color = new cc.Color(110, 110, 110)
        if(iTime == 1 && iUserItemData.num > 0){
            this.itemSprite.node.runAction(cc.repeat(cc.sequence([cc.delayTime(0.1), cc.callFunc(sender=>{
                iTime -= 0.1
                this.timeLabel.string = iTime.toFixed(1)
            })]), 10))
        }else{
            this.timeLabel.string = iTime
        }
    }else{
        this.itemSprite.node.stopAllActions()
        this.timeLabel.string = ""
        this.itemSprite.node.color = cc.Color.WHITE
    }
}

2.spine挂载slot:

update(dt){
		if(this.node.active && this.root.aniContent.getComponent(sp.Skeleton)){
			let oBone = this.root.aniContent.getComponent(sp.Skeleton).findBone("num")
			this.root.totalLabel.x = oBone.x
			this.root.totalLabel.y = oBone.y
			this.root.totalLabel.scale = oBone.scaleX
		}
	}

3.多icon 动态对其公式:

initAwardData(){
    let lItemData = [{item_id: 1, num: 2}]
    let iPosIndex = 0
    for (let index = 0; index < lItemData.length; index++) {
        let iUserItemData:any = Ctrls.fight.getItemById(lItemData[index].item_id)
        if(iUserItemData.num > 0){
            let oItem = cc.instantiate(this.itemFab)
            oItem.getComponent("FightItemFab").initInfo(lItemData[index], iUserItemData.num)
            oItem.position = cc.v2(-100 * (lItemData.length - 1) + iPosIndex * 200, -10)
            oItem.scale = 1.8
            oItem.parent = this.bgSprite.node
            iPosIndex ++
        }
    }
}
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值