Laya 笔记-LayaAir基础篇

屏幕适配

获取浏览器DPR (Device Pixel Ratio)设备像素比:Laya.Browser.pixelRatio

逻辑宽高(逻辑分辨率的宽高):Laya.Browser.clientWidth、Laya.Browser.clientHeight

物理宽高(物理分辨率):Laya.Browser.width、Laya.Browser.height

设计宽高:在LayaAir引擎里,初始化引擎的init(宽,高)值对应的就是设计宽高。如Laya.init(750, 1334);

 

引擎内置的抗锯齿:LayaAir引擎内置了抗锯齿方法,并且在3D库中默认开启了,2D想开启的话可以在init()之前加入Config.isAntialias =true;

 

3D关闭HDR:

  1. this.camera = new Laya.Camera(0, 0.1, 100);
  2. this.camera.enableHDR = false; //关闭HDR

开启视网膜画布模式

开启视网膜画布模式的方式有两种,一种是在初始化舞台之前,也就是init()之前添加一行配置代码。代码如下:

  1. //使用视网膜画布模式,在init之前使用
  2. Config.useRetinalCanvas = true;

如果想动态控制视网膜画布模式的开和关,也可以用另一种设置模式,在init()之后添加配置代码。代码如下:

  1. //使用视网膜画布模式,在init之后使用
  2. Laya.stage.useRetinalCanvas = true;

 

垂直对齐:

Laya.stage.alignV = "left";   // left | center | right

常量写法:Laya.Stage.ALIGN_LEFT | Laya.Stage.ALIGN_CENTER | Laya.Stage.ALIGN_RIGHT

水平对齐:

Laya.stage.alignH ="top";   //top | middle | bottom

常量写法:Laya.Stage.ALIGN_TOP | Laya.Stage.ALIGN_MIDDLE | Laya.Stage.ALIGN_BOTTOM 

 

初始化舞台:Laya.init(750, 1136, Laya['WebGL']);

设置舞台背景颜色:Laya.stage.bgColor = "FF0000";

 

屏幕方向设置:Laya.stage.screenMode = "none";   //none | horizontal | vertical

常量写法:Laya.Stage.SCREEN_NONE | Laya.Stage.SCREEN_HORIZONTAL |  Laya.Stage.SCREEN_VERTICAL

 

动画基础

图集动画

创建动画实例:this.roleAni = new Laya.Animation();

加载动画图集:this.roleAni.loadAtlas("res/atlas/role.atlas",Laya.Handler.create(this,this.onLoaded));

播放动画:this.roleAni.play();

用createFrames创建动画模板来播放图集中指定的动画

如果图集中是独立的序列帧动画,直接使用play()方法就可以播放了。但是,将多个动画打包到一个图集里,如果要播放指定的动画,那就需要通过创建动画模板来实现。

    private onLoaded():void{
        //添加到舞台
        Laya.stage.addChild(this.roleAni);
        //创建动画模板dizziness
        Laya.Animation.createFrames(this.aniUrls("die",6),"dizziness");
        //循环播放动画
        this.roleAni.play(0,true,"dizziness");
    }

    /**
     * 创建一组动画的url数组(美术资源地址数组)
     * aniName  动作的名称,用于生成url
     * length   动画最后一帧的索引值,
     */    
    private aniUrls(aniName:string,length:number):any{
        var urls:any = [];
        for(var i:number = 0;i

用loadImages直接播放图集中指定的动画

提示:

  • loadImage方法也可以创建动画模板,例如将上面加载与播放改写为roleAni.loadImages(aniUrls("move",6),"walk").play();,第二个参数的值“walk”就是动画模板的名称(key)。
  • 当被多次使用的时候,使用动画模板可以节省CPU的开销,但是,如果只是偶尔或一次使用,那就不要使用动画模板,因为节省CPU开销是以牺牲一定的内存开销为代价。

缓动动画

 

时间轴动画

动效模板

Spine动画使用

DragonBones动画

 

音乐与音效的播放与控制

音乐:采用laya.media.SoundManager音频管理类中的playMusic方法进行播放,只能同时播放一个音频文件。

音效:采用的是laya.media.SoundManager音频管理类中的playSound方法,允许同时播放多个音频文件。

音量:通过laya.media.SoundManager音频管理类中的setSoundVolume,初始值为1。音量范围从 0(静音)至 1(最大音量)。

静音:SoundManager.useAudioMusic=false;

 

音频的兼容性准备

由于音频播放问题的各个浏览器兼容性不同,在开始应用前,我们要做好前期的兼容准备:

(1)使用“格式工厂”音频文件转换工具。选择 44100Hz,96kbps 进行转换。

(2)音频文件尽量小,不仅仅是带宽的限制,还有浏览器音频解码的效率问题。

 

游戏失去焦点与得到焦点监听

//失去舞台焦点(切出游戏)的处理
Laya.stage.on(Laya.Event.BLUR, this, () => {
    
});
//获得舞台焦点(切回游戏)的处理
Laya.stage.on(Laya.Event.FOCUS, this, () => {
    
});

 

你可能感兴趣的:(Laya)