LayaBox---知识点
Posted 格拉格拉
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LayaBox---知识点相关的知识,希望对你有一定的参考价值。
目录
5.代码发生变动,如新增公有变量。需手动切换鼠标选中物体,再选回来才会刷新。
6.定义的公有物体变量node 没有坐标属性,需进行类型转换
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脚本参数说明
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---知识点的主要内容,如果未能解决你的问题,请参考以下文章