灾害模拟-火势蔓延

MMSDT.spread()

       用于消防等应急演练及灾害模拟,模拟火势的蔓延。

构造函数

      MMSDT.spread( parameters: object )

       parameters - json格式,参数设置。

           scale - 数字,火的大小。

           speed - 数字,蔓延速度。

属性

       .updata(array,callback)

       更新路径,array-二维数组,火势蔓延的路径坐标点。

       callback,回调函数,动画结束。

       .remove()

       删除。

       .speed(value)

       改变速度,value-数字

代码示例

var MMS3D_exceptionMesh = []; //需要材质拆分的网格 var MMS3D_instancingMesh = ["shu"]; //合并实例化网格 //初始化场景 MMSDT.initScene( false, MMS3D_exceptionMesh, MMS3D_instancingMesh ); //设置第3人称鼠标控制器 controls3.maxPolarAngle = Math.PI*0.49; //向下,最大角度限制 controls3.maxDistance = 500; //最远距离限制 controls3.screenSpacePanning = false; //右键平移是否上下移动 controls3.enableDamping = true; //是否开启惯性阻尼 controls3.dampingFactor = 0.1; //惯性阻尼系数 //使用json文件让场景还原 MMSDT.onloadScene( "models/mms3D_fdc1.json", function(progress){ if( progress == 'done' ){ //加载完成,播放风机动画 for( var i=0; i<actions[0].length; i++ ){ actions[0][i].play(); } }else if( progress == 'ok' ){ //渲染完成 onloadDone(); }else{ //显示进度条数字 document.getElementById("loadNum").innerHTML = Math.round( progress )+'%'; } }); //场景加载完成 function onloadDone(){ } var options = { scale: 1.5, //蔓延火焰的缩放大小 speed: 50, //火焰蔓延速度 } var objSpread = new MMSDT.spread( options ); //初始化火焰 //自定义对外函数接口------------------------------------------------------------------------ //火势开始 MMAPI.startFire = function(num){ //路径 var points = [ [2,0.5,147],[30,0.5,165],[41,0.5,166],[56,0.5,160],[65,0.5,151],[78,0.5,146],[96,0.5,138],[124,0.5,155],[140,0.5,178],[160,0.5,208],[169,0.5,239],[158,0.5,259],[133,0.5,269],[97,0.5,274] //按路径蔓延 objSpread.updata( points, function(){ //完成后回调 let divInfo = document.createElement("div"); divInfo.className = "infoBox"; divInfo.innerHTML = "火势动画<br>播放完成"; document.body.appendChild(divInfo); //3秒后消失 setTimeout(function(){ divInfo.parentNode.removeChild(divInfo); },3000) }); } //全部删除 MMAPI.delFire = function(){ objSpread.remove(); }

点击查看示例演示 →