LayaAir

HTML5 开源游戏引擎
授权协议 MIT
开发语言 JavaScript TypeScript HTML/CSS ActionScript
所属分类 游戏/娱乐、 游戏模拟器/工具/引擎
软件类型 开源软件
地区 国产
投 递 者 马寒
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

LayaAir 是 HTML5 开源引擎。

提供 Canvas 和 Webgl 同时渲染,如果 Webgl 不可用,则可自动切换到 Canvas 模式。引擎为高性能游戏设计,支持 AS,TS,JS 三种语言开发,一套代码三端齐发(Flash,HTML5,APP)。

LayaAir特点

  • 极致性能

LayaAir优先使用webgl渲染,如果webgl不可用,自动无缝转为canvas渲染,引擎设计过程中处处以性能为优先原则,LayaAir是为裸跑而设计的HTML5引擎。

  • 轻量易用

LayaAir API设计上追求精简,简单易用,上手容易,引擎本身非常注意自身大小,是目前同等功能最小的HTML5引擎。

  • 支持多语言开发

LayaAir同时支持ActionScript3、TypeScript、JavaScript三种语言开发HTML5

  • 功能齐全

    同时支持2D,3D,VR、时间轴动画,缓动、UI系统、粒子动画、骨骼动画、物理系统等

  • 提供可视化辅助开发及工具流

LayaAirIDE提供代码开发工具及可视化编辑器,清晰的工作流,让美术,策划,程序紧密配合,提高开发效率

  • 开源免费

引擎全部开源并托管到github,并且全部免费使用,包括商用

当前功能

  •  Webgl渲染

  •  Canvas渲染

  •  矢量图

  •  图集支持

  •  加载管理器

  •  HTML富文本

  •  位图字体

  •  遮罩

  •  滤镜

  •  时间轴动画

  •  UI

  • 粒子

  • 骨骼

  • 物理系统

  • 可视化IDE

  • 3D

  • VR

开始使用

JS版本

Laya.init(550, 400);
Laya.stage.scaleMode = "showall";

var ape = new laya.Sprite();
//加载猩猩图片
ape.loadImage("res/apes/monkey2.png", 220, 128);

Laya.stage.addChild(ape);

AS版本

package
{
    import laya.display.Sprite;
    import laya.display.Stage;

    public class Sprite_DisplayImage
    {
        public function Sprite_DisplayImage()
        {
            Laya.init(550, 400);
            Laya.stage.scaleMode = "showall";

            var ape:Sprite = new Sprite();
            //加载猩猩图片
            ape.loadImage("res/apes/monkey2.png", 220, 128);

            Laya.stage.addChild(ape);
        }
    }
}

TS版本

/// <reference path="../../libs/LayaAir.d.ts" />
class Sprite_DisplayImage{

    constructor(){
        Laya.init(550, 400);
        Laya.stage.scaleMode = "showall";

        var ape = new Laya.Sprite();
        //加载猩猩图片
        ape.loadImage("res/apes/monkey2.png", 220, 128);

        Laya.stage.addChild(ape);
    }
}
new Sprite_DisplayImage();

演示Demo

游戏展示

http://game.layabox.com/265

API帮助

http://layaair.ldc.layabox.com/api/

文档教程

http://ldc.layabox.com/index.php?m=content&c=index&a=show&catid=8&id=10

开发者中心

http://ldc.layabox.com/

社区

http://ask.layabox.com/

目录结构

  • bin 编译好的类库,里面分为as,js,ts三种

  • samples 示例项目

  • src 类库源代码

  • utils 自动化编译及其他工具

  • 第一章  全部课程介绍 1.1 大纲简介 1.2.课程目标 1.2.1  了解产业机会与Layabox的产品 1.2.2  认识LayaAir引擎的结构 1.2.3  真正掌握IDE的使用 场景 UI组件 脚本 动画基础 物理系统基础 1.3 本课程适合群体 无编程基础的美术 有编程基础的LayaAir引擎爱好者 第二章  Layabox简介 2.1  Layabox的前世今生 2.2  laya

  • 1. IOS native中,js调用oc原生方法,如果返回float类型,会有精度问题导致程序崩溃,在底层源代码崩溃。之前看到一篇unity3d也有在某些ios机型上的精度问题导致的崩溃文章(貌似是雨松写的)。

  • 一、 使用Laya官方编译器–layaair2-cmd 1. 安装 npm install -g layaair2-cmd 2. 使用 layaair2-cmd compile 3. 优缺点 小项目编译速度快,Laya编辑器内嵌该编译器,但是大型项目编译速度非常慢 二、 Webpack 1. 安装 首先将项目初始化为npm项目,在项目根目录下执行npm init 然后安装依赖: npm insta

 相关资料
  • 此功能旨在降低H5游戏接入手Q轻游戏成本,同时提供手Q相关的能力:用户信息、排行榜、分享等 支持版本:安卓手 Q 7.6.0 及以上,iOS 7.9.0 及以上 H5游戏包上架与正常游戏包上架流程一致 H5游戏包说明 H5游戏包与普通游戏包有所不同,游戏专用包地址 gameConfig.json:游戏配置文件,H5需重点关注 main.js:使用Bricks引擎开发的游戏的代码文件,H5游戏不用关

  • 问题内容: 我最近一直在研究游戏开发,而我的第一种编程语言是Java。在玩了许多用c ++开发的令人惊叹的游戏之后,我想知道为什么Java在游戏行业中没有被大量使用。我查看了jMonkeyEngine 3和其他一些游戏引擎环境,但是看到的屏幕截图远没有那么令人惊叹。诸如EA的《极品飞车》(Need for Speed Hot)和ubisoft的Assassins Creed等标题传达了这种现实感。

  • 8.6一面,supercell部门,邮件上写的游戏发行,实际还是技术部门,被拷打一个小时 先问简历和项目,提到角色骨骼动画(简历相关),骨骼动画的原理和生成过程,判断2D下线与矩形相交,射击游戏中子弹如何判断碰撞,速度过快时如何判断穿墙和击中(简历相关),判断点在三角形内 图形学八股,渲染管线,太久没碰忘了很多 cpp八股,泛型、特化介绍,虚函数、多态介绍,堆栈内存不同点,进程和线程不同点 算法,

  • 看到没什么发多益的同学,我就发一个给大家参考参考吧,一面是业务面,面了70min,二面是HR面,问的什么忘了 问项目(做了什么、难题怎么克服),和项目组成员以及需求方怎么沟通的 项目中信息如何加密,未收到信息如何处理? 项目中用redis做什么,用了redis的哪些数据结构?为什么用这些数据结构? 项目中事件的逻辑引擎怎么设计的?设计的思路是上面? 最熟悉的两种语言以及他们的优缺点 深拷贝和浅拷贝

  • 一个顶点从局部坐标怎么到屏幕上; NDC 空间的范围是什么;所有平台都是这样吗; 在 NDC 空间的点如何变换回世界空间; MSAA 的原理和实现细节;为什么要用 MSAA; 锯齿出现的原因;走样背后的原理; irradiance 和 radiance 的区别;量纲分别是什么;积分表达; 写出渲染方程;解释下每项的含义; 写出 Cook-Torrance BRDF 公式; 解释漫反射型;兰伯特项为

  • offer已经有一小段时间了,其实之前就打算发,但是最近在赶前一阵因为找实习而搁置的活。这两天有点闲工夫,就把之前记录的一点点面经发一下,回馈社区。 (看其他真正的引擎佬面试强度比我高太多了,相比之下我就是个臭弟弟,运气太好了。面试中也看到了很多不足,得抓紧补起来了) timeline 3.22 投递(过了个周末,3.25周一约了3.27一面) 3.27 一面(当天过,并约次日二面) 3.28 二

  • 你的常用的数据结构都有什么? HashMap和HashSet的区别? 怎么构造一个HashMap HashMap优势是什么? 还有什么需要注意的? 扩容机制,hash冲突? 如果你去设计一个Hash函数怎么设计呢? 一般 HashMap多线程情况下会出现什么问题? 怎么解决扩容死链的? 尾插会有什么问题? 数据错乱问题以外还有什么其他问题? 怎么解决这个问题? councurrentHashMap

  • 介绍软光线追踪项目; 讲述光栅化里的MSAA和SSAA的区别; 讲述布林冯光照模型; 讲述Cook-Torrance BRDF;微表面模型中如何反应材质的粗糙程度? 讲述延迟管线和前向渲染; 光照计算发生在哪个shader里; forward+在移动端和PC上的底层实现(不会); 虚函数/纯虚函数/重载/析构函数相关; 指针和引用的区别; 计算结构体的内存大小; 如何用代码判断机器是否为大小端;