Cocos creator 学习笔记()

1.一般重复出现的节点  会生成预制体动态添加进场景中

        0.制作预制体  https://blog.csdn.net/u012987441/article/details/100637797

        1.绑定预制体预制体绑定教程

        2.将预制体添加到场景中

                

 this.blockNodeArr=[];//更好的管理预制体才声明的变量
        for(var a=0;a<10;a++){
            console.log("生成第一个预制体");
            // 生成第一块节点用预制体
            let blockNode=cc.instantiate(this.blockPrefa);
            blockNode.x=this.lastBlockPosX+50;
            blockNode.y=0; 
            if(a==0){
                var suijish=100;
            }else{
                var suijish=this.randomNum(30,60);
            }
           
            blockNode.getComponent("block").init(suijish);

            
            //放入场景中去
            this.blockAreaNode.addChild(blockNode);
            this.blockNodeArr.push(blockNode);
        
        }

2访问其他js脚本的方法以及变量

场景中新建一个js脚本

节点中再绑定js脚本

blockNode.getComponent("block").init(suijish);

//blockNode游戏节点
//节点名称  block
//节点绑定的js脚本   init()方法是js里面新建的

3.获取屏幕的宽

cc.winSize.width

4.绑定页面滑动事件

 this.node.on("touchstart",this.boost,this);

5.解绑页面滑动事件

this.node.off("touchstart",this.boost,this);

6.widget  UI组件  四个方向都设置0

7.物理组件

RigidBody  Box(碰撞组件)

8.打开物理引擎

  let memmget=cc.director.getPhysicsManager();

        memmget.enabled=true;

        memmget.gravity=cc.v2(0,-2200);

 9切换场景

 cc.director.loadScene("game");//回到初始场景(重新进入场景) 

10监听场景中的点击事件  以及销毁事件

 //这是界面事件

input.on(Input.EventType.TOUCH_START, this.onTouchStart, this);
        input.on(Input.EventType.TOUCH_MOVE, this.onTouchMove, this);
        input.on(Input.EventType.TOUCH_END, this.onTouchEnd, this);


销毁
 input.off(Input.EventType.TOUCH_START, this.onTouchStart, this);
        input.off(Input.EventType.TOUCH_MOVE, this.onTouchMove, this);
        input.off(Input.EventType.TOUCH_END, this.onTouchEnd, this);

这是节点事件
  this.node.on(Node.EventType.TOUCH_MOVE, this.onTouchMove, this);

11开启碰撞管理器  使用了物理碰撞组件  BOX的

     cc.director.getPhysicsManager().debugDrawFlags=true;
        // 开启物理碰撞管理器
        cc.director.getCollisionManager().enabled=true;
       cc.director.getCollisionManager().debugDrawFlags=true;

12刚体动态静态切换

  let rightbody=this.box.getComponent(cc.RigidBody);
   rightbody.type='static';

13获取节点下的

children[a].getComponent(UITransform)

UITransform这是组件  然后就可以点出来组件的属性了

 children[a]//获取到的是节点

14.判断是否点击到了此节点上

children[a].getComponent(UITransform).contains(new Vec2(v3_onTouchStart.x,v3_onTouchStart.y))

15获取节点的组件的属性

节点.getComponent(组件名).属性名

   childs[a].getComponent(Sprite).color

16获取节点的js里面的方法

节点.getComponent(js文件)

17给button绑定点击事件

第一个箭头是节点:绑定了js的一个节点

第二个箭头是     第一个节点绑定的js

第三个箭头是    js里面的按钮的点击事件的方法

下面customeventData  是给方法传的参数

btnClick(event:Event,custom:string){

        console.log("调整卷");

    }

18  删除父元素底下所有的节点

this.parentBlocks.removeAllChildren();

19如果一个节点下绑定两个js脚本,哪个脚本先在前面,就先执行谁

20js引入另一个js脚本,执行其中的方法以及变量

 三个箭头的名字必须一致

引入js文件

import { gameData } from './gameData';

拿到js类

 this.gameData=this.node.getComponent(gameData);

21定时器

 this.scheduleOnce(res=>{
                this.init();
            },1);

意思是一秒后执行

22

.getUILocation()  获取节点相对于左下角的位置

getLocation()  获取触点位置对象

23 给节点加上动画

  tween(list[a])
                    .delay(0.05)
                    .to(0.1, { scale: new Vec3(0, 0,0) })
                    .removeSelf()
                    .start();//给节点加上动画

//list[a]为子节点  node下的

24清空父节点下的所有子节点

this.parentBlocks.removeAllChildren();

25坐标转换

从节点坐标转成世界坐标,再转成节点坐标

let v3_world = this.parentBlocks.getComponent(UITransform).convertToWorldSpaceAR(v3_block_start)
        let v3_node_di = this.parentBlockBottom.getComponent(UITransform).convertToNodeSpaceAR(v3_world)

26播放音频以及引入音频     

  1.获取播放音频的类

       // 获取音频组件

        this.audioSource=this.node.getComponent(AudioSource);

2.播放音频

this.audioSource.playOneShot(this.arrMusic[1],1);//播放短的音频

3.this.arrMusic[1]  这是通过音频资源组件(AudioClip)

    @property({type:[AudioClip]})

    arrMusic=[];//存的音频资源,手动关联  这是数组

27修改图片资源

28添加动画播放动画

TypeScript

1.

 init(mainGame:MainGame){
        
    }
//形参  是一个ts文件名,讲ts的上下文传入这个方法,就可以实现从这个ts文件调用MainGame   ts文件的方法

2.监听碰撞体碰撞事件

onLoad里

let collider:Collider2D=this.getComponent(Collider2D);
        if(collider){
            collider.on(Contact2DType.BEGIN_CONTACT,this.onBeginConcat,this)
        }

实现方法

 // 监听碰撞事件
    onBeginConcat(selt:Collider2D,other:Collider2D,contact:IPhysics2DContact|null){

    }

可以再项目-->物理设置里面添加碰撞组

3.找到不是同一个父节点的节点下的组件并修改其属性

find("/Canvas/Score").getComponent(Label).string="分数:"+globle.score;

this.node.getChildByName("Score").getComponent(Label).string="得分"+globle.score;

4.播放音效

首先给节点绑定AudioClip组件,然后关联音频文件,js中声明接收AudioClip组件的变量

  this.node.getComponent(AudioSource).play(音频组件变量);//播放音效

5添加贞动画  (小人动作)

动画编辑界面  有一个属性编辑列表  点击加号  选择 cc.sprite  然后再选择spriteFrame  图片资源

6.公共的TS文件,其他ts问价 都可访问

import { _decorator, Component, Node, view } from 'cc';
const { ccclass, property } = _decorator;

@ccclass('globle')
export class globle extends Component {

    public static width:number=view.getDesignResolutionSize().width;//得到项目设计的高度
    public static height:number=view.getDesignResolutionSize().height;//得到项目设计的宽度

    public static score:number=0;

    start() {

    }

    update(deltaTime: number) {
        
    }
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

飞飞翼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值