LayaBox---知识点

Posted 格拉格拉

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LayaBox---知识点相关的知识,希望对你有一定的参考价值。

目录

1.visualcode---配置model快捷模版

2.定义在属性面板显示的变量

3.获取脚本挂载物体组件

4.删除已挂载的脚本,还得在挂载物体上删除引用。

5.代码发生变动,如新增公有变量。需手动切换鼠标选中物体,再选回来才会刷新。

6.定义的公有物体变量node 没有坐标属性,需进行类型转换

7.Laya脚本参数说明

8.Laya事件广播与接收

9.插值

10.勾股定理 求距离

11.随机值

12.获取键盘按键

13.代码获取游戏内物体

14.音乐音效播放

15.按钮点击事件监听

16.游戏暂停、场景跳转与重新加载

17.本地存储  相当于unity的PlayerPrefes

18.延时执行

19.设置游戏画面左右居中


1.visualcode---配置model快捷模版

code---首选项---配置用户代码片段

2.定义在属性面板显示的变量

  /** @prop name:intType, tips:"整数类型示例", type:Int, default:1000*/
    public intType: number = 1000;
  /** @prop name:numType, tips:"数字类型示例", type:Number, default:1000*/
    public numType: number = 1000;
  /** @prop name:strType, tips:"字符串类型示例", type:String, default:"hello laya"*/
    public strType: string = "hello laya";
  /** @prop name:boolType, tips:"布尔类型示例", type:Bool, default:true*/
    public boolType: boolean = true;
  /** @prop name:shoe,tips:"物体",type:Node,default:null*/
    public shoe = null; 

// 更多参数说明请访问: https://ldc2.layabox.com/doc/?nav=zh-as-2-4-0

3.获取脚本挂载物体组件

this.owner.getComponent(Laya.RigiBody);

4.删除已挂载的脚本,还得在挂载物体上删除引用。

5.代码发生变动,如新增公有变量。需手动切换鼠标选中物体,再选回来才会刷新。

6.定义的公有物体变量node 没有坐标属性,需进行类型转换

2d:
public get gameObject():Laya.Sprite

    return this.owner as Laya.Sprite;


3d:
public get gameObject():Laya.Sprite3D

    return this.owner as Laya.Sprite3D;


-------------------------------------------------

public get transform():Laya.Transform

    return this.gameObject.transform;

7.Laya脚本参数说明

laya脚本参数

8.Laya事件广播与接收

广播事件:

Laya.stage.event("事件名");

接收事件:

onAwake()

    //添加监听
    Laya.stage.on("事件名",this,this.reset);


private reset()
    //.....


onDestroy()
    //移除监听
    Laya.stage.off("事件名",this,this.reset);

9.插值

Laya.MathUtill.lerp(curObj.x,targetObj.x,Laya.timer.delta/1000 * speed);

10.勾股定理 求距离

a*a + b*b = c*c;

c = Math.sqrt(a*a + b*b);

11.随机值

private getRandom(min, max) 

    let value = max - min;
    value = Math.random() * value;
    return value + min;

12.获取键盘按键

1.
onUpdate()

    if (Laya.KeyBoardManager.hasKeyDown(Laya.Keyboard.A)) 
    
        this.rig.setVelocity( x: -10, y: this.rig.linearVelocity.y );
     else if (Laya.KeyBoardManager.hasKeyDown(Laya.Keyboard.D)) 
            
        this.rig.setVelocity( x: 10, y: this.rig.linearVelocity.y );
    



2.
onKeyDown(e) 

    //console.log(e.nativeEvent.key+".........2");
    if (e.nativeEvent.key == " " && this.canJump) 
    
        this.canJump = false;
        this.rig.setVelocity( x: this.rig.linearVelocity.x, y: -13 );
    



3.
onKeyPress(e)

    console.log(e.nativeEvent.key+".........1");
    if(e.nativeEvent.key == "a")
    
    

13.代码获取游戏内物体

//查找一级物体
Laya.stage.getChildByName("Player");
或
this.owner.parent.getChildByName("wuti");

//查找本物体下的子物体
this.owner.getChildByName("子物体名");

14.音乐音效播放

//播放音乐
Laya.soundManager.playMusic(“地址/music.mp3”,0); //0为无限循环

//单纯播放音效
Laya.SoundManager.playSound("sound/BallHit-01.mp3");
//播放完成后加事件
Laya.SoundManager.playSound("sound/startWistle.mp3",1,
    new Laya.Handler(this,()=>
        Laya.stage.event("StartGame"); //广播--开始游戏
));

15.按钮点击事件监听

onAwake()

    this.gameOverPanel.getChildByName("btn_menu").on
    (Laya.Event.CLICK,this,()=>
        //。。。。。            
    );

16.游戏暂停、场景跳转与重新加载

//跳转场景
this.pausePanel.getChildByName("btn_menu").on(Laya.Event.CLICK,this,
()=>        
    Laya.Scene.open("Menu.json");
);

//继续游戏
this.pausePanel.getChildByName("btn_continue").on(Laya.Event.CLICK,this,
()=>
    this.pausePanel.visible = false;
    this.isPause = false;
    Laya.timer.scale =1;
);

//重新开始
this.pausePanel.getChildByName("btn_restart").on(Laya.Event.CLICK,this,
()=>
    Laya.Scene.open("Main.json");
);

/游戏暂停
this.owner.parent.getChildByName("btn_pause").on(Laya.Event.CLICK,this,
()=>
        this.isPause = true;
        this.pausePanel.visible = true;
        Laya.timer.scale = 0;
    );

17.本地存储  相当于unity的PlayerPrefes

onEnable(): void 
    if(Laya.LocalStorage.getItem("headIndex")=="NaN")
        Laya.LocalStorage.setItem("headIndex","1");
    
    this.head_index = parseInt(Laya.LocalStorage.getItem("headIndex"));
    this.skinUrl = "Textures/Players/Player-Head-0"+this.head_index+"-n.png";
    this.roleIcon.skin = this.skinUrl;

18.延时执行

//清除此脚本已存在的timer事件
Laya.timer.clearAll(this);
//延迟0.5秒执行
Laya.timer.once(500, this, () => 
    this.heroIcon.texture = "Textures/Players/Player-Head-01-n.png";
);

19.设置游戏画面左右居中

//场景分辨率 1920*1080
Laya.stage.pivot(960, 0);
Laya.stage.x = Laya.stage.width / 2;

以上是关于LayaBox---知识点的主要内容,如果未能解决你的问题,请参考以下文章

LayaBox---Dialog弹窗

LayaBox---TypeScript---首次接触遇到的问题

LayaBox---背景拖动

LayaBox---背景拖动

LayaBox---Animation---时间轴动画

layabox环境搭建