消防官兵在日常训练中经常会进行沙盘推演,相比传统的沙盘推演利用3D模拟更加直观,效率更高。
第一步,利用CampusBuilder搭建模拟火灾场景。CampusBuilder的模型库有各种各样的模型,使我们搭建出的场景更逼真。
//加载场景代码
var app = new THING.App({
// 场景地址
"url": "http://www.thingjs.com/./uploads/wechat/oLX7p05lsWJZUIxnIWsNXAzJ40X8/scene/演练场景",
//背景设置
"skyBox" :"BlueSky"
});
第二步,设置着火点,使用火焰粒子效果
//设置火点
var particle = app.create({
type: 'ParticleSystem',
url: 'https://thingjs.com/static/particles/fire1',
position: [-65,6,-11]
});
第三步,创建进攻路线,设置一个全局变量 flag_index 保证每条线只能创建一次
//创建线路
function createLine(index,flag) {
app.off('click');
var options = {
lineImageType:lineImage[index],
isDraggable:true,
TYPE:"RouteLine"
}
if(flag) {
getLine(options,index);
flag = false;
}
}
第四步,绘制进攻路线,这里我的思路是以点连线绘制出进攻路线,设置鼠标点击标点之后连线。
//进攻路线:绘制进攻路线
function getLine(options,index){
//lineImageType,isDraggable,TYPE
line_array[index] = app.create({
type: options.TYPE,
localPosition: [0,0.5,0],
image: options.lineImageType, // 线路中的纹理资源
draggable : options.isDraggable,
});
line_array[index].scrollUV = true;
app.on('click', function(e,line){
var tempPoint = e.getPickedPosition();
line_array[index].addPoint(tempPoint);
})