《开放源码优选》是我们撷取Github、Gitee等开放源码街道社区中高质量项目的版块,主要就包括技术、自学、新颖与各种有意思的文本。下期所推荐的是一个全力支持2D、3D的格斗游戏与应用领域合作开发的的迷你格斗游戏发动机——LayaAir。

自动草稿

全力支持WebGL 1.0与2.0 自适应。全力支持ActionScript3、TypeScript、JavaScript四种合作开发词汇,适用于2D、3D商品研制。操控性相媲美原生植物APP,一次合作开发HTML5、APP(Android与iOS)、迷你格斗游戏(QQ迷你格斗游戏、QQ迷你格斗游戏、腾讯迷你格斗游戏、PayPal迷你格斗游戏、BiliBili迷你格斗游戏、二进制颤动迷你格斗游戏、华为快格斗游戏、OPPO迷你格斗游戏、vivo迷你格斗游戏、宏碁快格斗游戏、等)各网络平台与此同时正式发布。

机能优点

LayaAir发动机主要就主要就包括发动机库LayaAir IDE三大核心理念部分。

LayaAir2.0发动机库机能

LayaAir2.0发动机不但保持了1.0的旧有机能,比如说:恶魔、CorelDRAW、文档、SL400本、位图手写体、动画电影、骨头、音音频与音频、感光、该事件、读取、缓动、时间、网络、UI控制系统、力学控制系统、TiledMap、prtocol等API;还追加内建了box2D力学发动机、模块化全力支持,和150数款3D机能,比如说:追加的主要就非官方织物主要就包括PBRStandardMaterial、PBRSpecularMaterial和UnlitMaterial织物等。着色各方面,增加多种不同着色模块实用性(mipmap、format、wrapModeU、wrapModeV、filterMode、anisoLevel), 增加着色上载画素USB, GPU着色填充。动画电影各方面,追加Animator动画电影结合机能crossFade,追加动画电影第二层混和播映,动画电影预览监督机制调整为动态对数,急剧增加缓存和动画电影简洁度表现,追加多种不同织物优点动画电影全力支持合作开发2D、3D商品研制,全力支持与此同时正式发布为Web(应用领域流程、webView)、Native APP(IOS、Android)、迷你格斗游戏(QQ、手Q、腾讯、头条新闻、抖音、华为、OPPO、vivo、宏碁)、等多种不同版。

自动草稿
自动草稿

LayaAir2.0 IDE机能

LayaAir2.0 IDE主要就主要就包括项目管理代码合作开发编辑器可视化编辑器第三方工具链全力支持工具等。其中主要就机能主要就包括:

代码合作开发UI与场景编辑器场景管理(2.0追加)粒子编辑器动画电影编辑器力学编辑器(2.0追加)模块化全力支持(2.0追加)3D全力支持(2.0追加)LayaCloud项目全力支持(2.0追加)脚本扩展预设APP打包JS混淆与填充第三方工具链转换工具(Unity3D、TiledMap、Spine、龙骨……)

Laya2.0 IDE 兼容LayaAir 1.x版的写法,在2d项目中,可以不需要太大的改动即可把旧有项目升级到2.0发动机(升级前建议备份)

Laya2.0 IDE 采用挂载模块脚本与场景管理的方式进行合作开发,在ide中编辑场景与页面模块,通过添加脚本的方式,使项目合作开发更利于流程,美术,策划的协同工作,并且对初次接触Laya的合作开发者,更易于上手,合作开发方式更友好。

自动草稿
自动草稿

合作开发词汇

由于LayaAir发动机全力支持ActionScript3(AS3)TypeScript(TS)JavaScript(JS)四种词汇合作开发,到底用哪种词汇更好呢?常常困惑着刚接触发动机的新手们。这里简单介绍一下。

关于JS词汇

需要大家注意的是JS词汇虽然上手更为容易,但是作为一弱类型词汇,合作开发与调试的难度,和大型项目的管理与多人协作等各方面,都不如TS与AS3这种可以在IDE中检测类型和语法词汇。当代码越来越多的时候,JS一旦不小心写错,IDE中并不会有任何提示,只有在运行的时候才会发现问题,经常有合作开发者为了查一个小小的失误,花费大量的时间成本。所以虽然全力支持JS词汇合作开发,但并不建议采用该词汇作为中型或大型项目的合作开发。

关于TS词汇

TS词汇是LayaAir发动机非官方所推荐的合作开发词汇,也是自2.2发动机开始,LayaAir发动机源码所使用的词汇。在非官方的2.0发动机音频教学中,也会仅采用TS词汇进行教学。

关于AS词汇

AS词汇是LayaAir 2.2版之前的发动机源码词汇,AS3词汇曾经是页游时代的霸主,但自从Adobe正式宣布放弃Flash之后,也代表着该词汇也将步入无人维护的境地。那一些新的词汇优点自然难以全力支持,毫无疑问,继续使用该词汇将会拖发动机的后腿。所以,LayaAir发动机源码词汇进行了变更,但2.X版发动机,AS词汇版仍会保持兼容及维护。但未来3.x一定会放弃该词汇的全力支持。所以建议合作开发者在创建新项目的时候不要使用AS词汇。

代码示例

自动草稿

场景读取

ActionScript

packageLayaAir3D_Scene3D{importcommon.CameraMoveScript;importlaya.d3.core.Camera;importlaya.d3.core.scene.Scene3D;importlaya.d3.math.Vector3;importlaya.d3.math.Vector4;importlaya.display.Stage;importlaya.utils.Handler;importlaya.utils.Stat;publicclassSceneLoad1{publicfunctionSceneLoad1() {//初始化发动机Laya3D.init(0,0);Stat.show();Laya.stage.scaleMode =Stage.SCALE_FULL;Laya.stage.screenMode =Stage.SCREEN_NONE;//读取场景Scene3D.load(“res/threeDimen/scene/LayaScene_dudeScene/Conventional/dudeScene.ls”,Handler.create(this, function(scene:Scene3D):void {Laya.stage.addChild(scene)asScene3D;//获取场景中的相机varcamera:Camera= scene.getChildByName(“Camera”)asCamera;//移动摄像机位置camera.transform.position = newVector3(0,0.81, –1.85);//旋转摄像机角度camera.transform.rotate(newVector3(0,0,0),true,false);//设置摄像机视野范围(角度)camera.fieldOfView =60;//设置背景颜色camera.clearColor = newVector4(0,0,0.6,1);//加入摄像机移动控制脚本camera.addComponent(CameraMoveScript);//设置灯光环境色//scene.ambientColor = new Vector3(2.5, 0, 0);}));
}
}
}

JavaScript

classSceneLoad1{constructor(){
Laya3D.init(0,0);
Laya.Stat.show();
Laya.stage.scaleMode = Laya.Stage.SCALE_FULL;
Laya.stage.screenMode = Laya.Stage.SCREEN_NONE;
Laya.Scene3D.load(“res/threeDimen/scene/LayaScene_dudeScene/Conventional/dudeScene.ls”, Laya.Handler.create(this,this.sceneLoadFinished));
}
sceneLoadFinished(scene){
Laya.stage.addChild(scene);letcamera = scene.getChildByName(“Camera”);
camera.addComponent(CameraMoveScript);
}
}//激活启动类newSceneLoad1();

TypeScript

importCameraMoveScriptfrom“./common/CameraMoveScript”classSceneLoad1{constructor() {
Laya3D.init(0,0);
Laya.Stat.show();
Laya.stage.scaleMode = Laya.Stage.SCALE_FULL;
Laya.stage.screenMode = Laya.Stage.SCREEN_NONE;

Laya.Scene3D.load(“res/threeDimen/scene/LayaScene_dudeScene/Conventional/dudeScene.ls”, Laya.Handler.create(null,function(scene:Laya.Scene3D):void{
Laya.stage.addChild(scene)asLaya.Scene3D;varcamera:Laya.Camera = scene.getChildByName(“Camera”)asLaya.Camera;
camera.addComponent(CameraMoveScript);
}));
}
}newSceneLoad1;

发动机示例

自动草稿

环境反射

自动草稿

光照贴图

自动草稿

方向光

自动草稿

网格读取

自动草稿

基础碰撞器

自动草稿

玻璃折射

自动草稿

模型示例

1.本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2.分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3.不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4.本站提供的源码、模板、插件等其他资源,都不包含技术服务请大家谅解!
5.如有链接无法下载或失效,请联系管理员处理!
6.本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!