__game-scripts.js 26 KB

1
  1. var TouchInput=pc.createScript("touchInput");TouchInput.attributes.add("orbitSensitivity",{type:"number",default:.4,title:"Orbit Sensitivity",description:"How fast the camera moves around the orbit. Higher is faster"}),TouchInput.attributes.add("distanceSensitivity",{type:"number",default:.2,title:"Distance Sensitivity",description:"How fast the camera moves in and out. Higher is faster"}),TouchInput.prototype.initialize=function(){this.orbitCamera=this.entity.script.orbitCamera,this.lastTouchPoint=new pc.Vec2,this.lastPinchMidPoint=new pc.Vec2,this.lastPinchDistance=0,this.orbitCamera&&this.app.touch&&(this.app.touch.on(pc.EVENT_TOUCHSTART,this.onTouchStartEndCancel,this),this.app.touch.on(pc.EVENT_TOUCHEND,this.onTouchStartEndCancel,this),this.app.touch.on(pc.EVENT_TOUCHCANCEL,this.onTouchStartEndCancel,this),this.app.touch.on(pc.EVENT_TOUCHMOVE,this.onTouchMove,this),this.on("destroy",function(){this.app.touch.off(pc.EVENT_TOUCHSTART,this.onTouchStartEndCancel,this),this.app.touch.off(pc.EVENT_TOUCHEND,this.onTouchStartEndCancel,this),this.app.touch.off(pc.EVENT_TOUCHCANCEL,this.onTouchStartEndCancel,this),this.app.touch.off(pc.EVENT_TOUCHMOVE,this.onTouchMove,this)}))},TouchInput.prototype.getPinchDistance=function(t,i){var o=t.x-i.x,n=t.y-i.y;return Math.sqrt(o*o+n*n)},TouchInput.prototype.calcMidPoint=function(t,i,o){o.set(i.x-t.x,i.y-t.y),o.scale(.5),o.x+=t.x,o.y+=t.y},TouchInput.prototype.onTouchStartEndCancel=function(t){var i=t.touches;1==i.length?this.lastTouchPoint.set(i[0].x,i[0].y):2==i.length&&(this.lastPinchDistance=this.getPinchDistance(i[0],i[1]),this.calcMidPoint(i[0],i[1],this.lastPinchMidPoint))},TouchInput.fromWorldPoint=new pc.Vec3,TouchInput.toWorldPoint=new pc.Vec3,TouchInput.worldDiff=new pc.Vec3,TouchInput.prototype.pan=function(t){var i=TouchInput.fromWorldPoint,o=TouchInput.toWorldPoint,n=TouchInput.worldDiff,h=this.entity.camera,c=this.orbitCamera.distance;h.screenToWorld(t.x,t.y,c,i),h.screenToWorld(this.lastPinchMidPoint.x,this.lastPinchMidPoint.y,c,o),n.sub2(o,i),this.orbitCamera.pivotPoint.add(n)},TouchInput.pinchMidPoint=new pc.Vec2,TouchInput.prototype.onTouchMove=function(t){var i=TouchInput.pinchMidPoint,o=t.touches;if(1==o.length){var n=o[0];this.orbitCamera.pitch-=(n.y-this.lastTouchPoint.y)*this.orbitSensitivity,this.orbitCamera.yaw-=(n.x-this.lastTouchPoint.x)*this.orbitSensitivity,this.lastTouchPoint.set(n.x,n.y)}else if(2==o.length){var h=this.getPinchDistance(o[0],o[1]),c=h-this.lastPinchDistance;this.lastPinchDistance=h,this.orbitCamera.distance-=c*this.distanceSensitivity*.1*(.1*this.orbitCamera.distance),this.calcMidPoint(o[0],o[1],i),this.pan(i),this.lastPinchMidPoint.copy(i)}};var OrbitCamera=pc.createScript("orbitCamera");OrbitCamera.attributes.add("distanceMax",{type:"number",default:0,title:"Distance Max",description:"Setting this at 0 will give an infinite distance limit"}),OrbitCamera.attributes.add("distanceMin",{type:"number",default:0,title:"Distance Min"}),OrbitCamera.attributes.add("pitchAngleMax",{type:"number",default:90,title:"Pitch Angle Max (degrees)"}),OrbitCamera.attributes.add("pitchAngleMin",{type:"number",default:-90,title:"Pitch Angle Min (degrees)"}),OrbitCamera.attributes.add("inertiaFactor",{type:"number",default:0,title:"Inertia Factor",description:"Higher value means that the camera will continue moving after the user has stopped dragging. 0 is fully responsive."}),OrbitCamera.attributes.add("focusEntity",{type:"entity",title:"Focus Entity",description:"Entity for the camera to focus on. If blank, then the camera will use the whole scene"}),OrbitCamera.attributes.add("frameOnStart",{type:"boolean",default:!0,title:"Frame on Start",description:'Frames the entity or scene at the start of the application."'}),Object.defineProperty(OrbitCamera.prototype,"distance",{get:function(){return this._targetDistance},set:function(t){this._targetDistance=this._clampDistance(t)}}),Object.defineProperty(OrbitCamera.prototype,"pitch",{get:function(){return this._targetPitch},set:function(t){this._targetPitch=this._clampPitchAngle(t)}}),Object.defineProperty(OrbitCamera.prototype,"yaw",{get:function(){return this._targetYaw},set:function(t){this._targetYaw=t;var i=(this._targetYaw-this._yaw)%360;this._targetYaw=i>180?this._yaw-(360-i):i<-180?this._yaw+(360+i):this._yaw+i}}),Object.defineProperty(OrbitCamera.prototype,"pivotPoint",{get:function(){return this._pivotPoint},set:function(t){this._pivotPoint.copy(t)}}),OrbitCamera.prototype.focus=function(t){this._buildAabb(t,0);var i=this._modelsAabb.halfExtents,e=Math.max(i.x,Math.max(i.y,i.z));e/=Math.tan(.5*this.entity.camera.fov*pc.math.DEG_TO_RAD),e*=2,this.distance=e,this._removeInertia(),this._pivotPoint.copy(this._modelsAabb.center)},OrbitCamera.distanceBetween=new pc.Vec3,OrbitCamera.prototype.resetAndLookAtPoint=function(t,i){this.pivotPoint.copy(i),this.entity.setPosition(t),this.entity.lookAt(i);var e=OrbitCamera.distanceBetween;e.sub2(i,t),this.distance=e.length(),this.pivotPoint.copy(i);var a=this.entity.getRotation();this.yaw=this._calcYaw(a),this.pitch=this._calcPitch(a,this.yaw),this._removeInertia(),this._updatePosition()},OrbitCamera.prototype.resetAndLookAtEntity=function(t,i){this._buildAabb(i,0),this.resetAndLookAtPoint(t,this._modelsAabb.center)},OrbitCamera.prototype.reset=function(t,i,e){this.pitch=i,this.yaw=t,this.distance=e,this._removeInertia()},OrbitCamera.prototype.initialize=function(){var t=this,i=function(){t._checkAspectRatio()};window.addEventListener("resize",i,!1),this._checkAspectRatio(),this._modelsAabb=new pc.BoundingBox,this._buildAabb(this.focusEntity||this.app.root,0),this.entity.lookAt(this._modelsAabb.center),this._pivotPoint=new pc.Vec3,this._pivotPoint.copy(this._modelsAabb.center);var e=this.entity.getRotation();if(this._yaw=this._calcYaw(e),this._pitch=this._clampPitchAngle(this._calcPitch(e,this._yaw)),this.entity.setLocalEulerAngles(this._pitch,this._yaw,0),this._distance=0,this._targetYaw=this._yaw,this._targetPitch=this._pitch,this.frameOnStart)this.focus(this.focusEntity||this.app.root);else{var a=new pc.Vec3;a.sub2(this.entity.getPosition(),this._pivotPoint),this._distance=this._clampDistance(a.length())}this._targetDistance=this._distance,this.on("attr:distanceMin",function(t,i){this._targetDistance=this._clampDistance(this._distance)}),this.on("attr:distanceMax",function(t,i){this._targetDistance=this._clampDistance(this._distance)}),this.on("attr:pitchAngleMin",function(t,i){this._targetPitch=this._clampPitchAngle(this._pitch)}),this.on("attr:pitchAngleMax",function(t,i){this._targetPitch=this._clampPitchAngle(this._pitch)}),this.on("attr:focusEntity",function(t,i){this.frameOnStart?this.focus(t||this.app.root):this.resetAndLookAtEntity(this.entity.getPosition(),t||this.app.root)}),this.on("attr:frameOnStart",function(t,i){t&&this.focus(this.focusEntity||this.app.root)}),this.on("destroy",function(){window.removeEventListener("resize",i,!1)})},OrbitCamera.prototype.update=function(t){var i=0===this.inertiaFactor?1:Math.min(t/this.inertiaFactor,1);this._distance=pc.math.lerp(this._distance,this._targetDistance,i),this._yaw=pc.math.lerp(this._yaw,this._targetYaw,i),this._pitch=pc.math.lerp(this._pitch,this._targetPitch,i),this._updatePosition()},OrbitCamera.prototype._updatePosition=function(){this.entity.setLocalPosition(0,0,0),this.entity.setLocalEulerAngles(this._pitch,this._yaw,0);var t=this.entity.getPosition();t.copy(this.entity.forward),t.scale(-this._distance),t.add(this.pivotPoint),this.entity.setPosition(t)},OrbitCamera.prototype._removeInertia=function(){this._yaw=this._targetYaw,this._pitch=this._targetPitch,this._distance=this._targetDistance},OrbitCamera.prototype._checkAspectRatio=function(){var t=this.app.graphicsDevice.height,i=this.app.graphicsDevice.width;this.entity.camera.horizontalFov=t>i},OrbitCamera.prototype._buildAabb=function(t,i){var e=0;if(t.model){var a=t.model.meshInstances;for(e=0;e<a.length;e++)0===i?this._modelsAabb.copy(a[e].aabb):this._modelsAabb.add(a[e].aabb),i+=1}for(e=0;e<t.children.length;++e)i+=this._buildAabb(t.children[e],i);return i},OrbitCamera.prototype._calcYaw=function(t){var i=new pc.Vec3;return t.transformVector(pc.Vec3.FORWARD,i),Math.atan2(-i.x,-i.z)*pc.math.RAD_TO_DEG},OrbitCamera.prototype._clampDistance=function(t){return this.distanceMax>0?pc.math.clamp(t,this.distanceMin,this.distanceMax):Math.max(t,this.distanceMin)},OrbitCamera.prototype._clampPitchAngle=function(t){return pc.math.clamp(t,-this.pitchAngleMax,-this.pitchAngleMin)},OrbitCamera.quatWithoutYaw=new pc.Quat,OrbitCamera.yawOffset=new pc.Quat,OrbitCamera.prototype._calcPitch=function(t,i){var e=OrbitCamera.quatWithoutYaw,a=OrbitCamera.yawOffset;a.setFromEulerAngles(0,-i,0),e.mul2(a,t);var s=new pc.Vec3;return e.transformVector(pc.Vec3.FORWARD,s),Math.atan2(s.y,-s.z)*pc.math.RAD_TO_DEG};var MouseInput=pc.createScript("mouseInput");MouseInput.attributes.add("orbitSensitivity",{type:"number",default:.3,title:"Orbit Sensitivity",description:"How fast the camera moves around the orbit. Higher is faster"}),MouseInput.attributes.add("distanceSensitivity",{type:"number",default:.15,title:"Distance Sensitivity",description:"How fast the camera moves in and out. Higher is faster"}),MouseInput.prototype.initialize=function(){if(this.orbitCamera=this.entity.script.orbitCamera,this.orbitCamera){var t=this,o=function(o){t.onMouseOut(o)};this.app.mouse.on(pc.EVENT_MOUSEDOWN,this.onMouseDown,this),this.app.mouse.on(pc.EVENT_MOUSEUP,this.onMouseUp,this),this.app.mouse.on(pc.EVENT_MOUSEMOVE,this.onMouseMove,this),this.app.mouse.on(pc.EVENT_MOUSEWHEEL,this.onMouseWheel,this),window.addEventListener("mouseout",o,!1),this.on("destroy",function(){this.app.mouse.off(pc.EVENT_MOUSEDOWN,this.onMouseDown,this),this.app.mouse.off(pc.EVENT_MOUSEUP,this.onMouseUp,this),this.app.mouse.off(pc.EVENT_MOUSEMOVE,this.onMouseMove,this),this.app.mouse.off(pc.EVENT_MOUSEWHEEL,this.onMouseWheel,this),window.removeEventListener("mouseout",o,!1)})}this.app.mouse.disableContextMenu(),this.lookButtonDown=!1,this.panButtonDown=!1,this.lastPoint=new pc.Vec2},MouseInput.fromWorldPoint=new pc.Vec3,MouseInput.toWorldPoint=new pc.Vec3,MouseInput.worldDiff=new pc.Vec3,MouseInput.prototype.pan=function(t){var o=MouseInput.fromWorldPoint,e=MouseInput.toWorldPoint,i=MouseInput.worldDiff,s=this.entity.camera,n=this.orbitCamera.distance;s.screenToWorld(t.x,t.y,n,o),s.screenToWorld(this.lastPoint.x,this.lastPoint.y,n,e),i.sub2(e,o),this.orbitCamera.pivotPoint.add(i)},MouseInput.prototype.onMouseDown=function(t){switch(t.button){case pc.MOUSEBUTTON_LEFT:this.lookButtonDown=!0;break;case pc.MOUSEBUTTON_MIDDLE:case pc.MOUSEBUTTON_RIGHT:this.panButtonDown=!0}},MouseInput.prototype.onMouseUp=function(t){switch(t.button){case pc.MOUSEBUTTON_LEFT:this.lookButtonDown=!1;break;case pc.MOUSEBUTTON_MIDDLE:case pc.MOUSEBUTTON_RIGHT:this.panButtonDown=!1}},MouseInput.prototype.onMouseMove=function(t){pc.app.mouse;this.lookButtonDown?(this.orbitCamera.pitch-=t.dy*this.orbitSensitivity,this.orbitCamera.yaw-=t.dx*this.orbitSensitivity):this.panButtonDown&&this.pan(t),this.lastPoint.set(t.x,t.y)},MouseInput.prototype.onMouseWheel=function(t){this.orbitCamera.distance-=t.wheel*this.distanceSensitivity*(.1*this.orbitCamera.distance),t.event.preventDefault()},MouseInput.prototype.onMouseOut=function(t){this.lookButtonDown=!1,this.panButtonDown=!1};var KeyboardInput=pc.createScript("keyboardInput");KeyboardInput.prototype.initialize=function(){this.orbitCamera=this.entity.script.orbitCamera},KeyboardInput.prototype.postInitialize=function(){this.orbitCamera&&(this.startDistance=this.orbitCamera.distance,this.startYaw=this.orbitCamera.yaw,this.startPitch=this.orbitCamera.pitch,this.startPivotPosition=this.orbitCamera.pivotPoint.clone())},KeyboardInput.prototype.update=function(t){this.orbitCamera&&this.app.keyboard.wasPressed(pc.KEY_SPACE)&&(this.orbitCamera.reset(this.startYaw,this.startPitch,this.startDistance),this.orbitCamera.pivotPoint=this.startPivotPosition)};var UiController=pc.createScript("uiController");UiController.attributes.add("prevButton",{type:"entity",title:"按钮-上一个",description:"用于触发切换到上一个的按钮"}),UiController.attributes.add("nextButton",{type:"entity",title:"按钮-下一个",description:"用于触发切换到下一个的按钮"}),UiController.attributes.add("pageIndex",{type:"number",default:0,title:"默认页",description:"表示默认第几页显示在首屏"}),UiController.prototype.initialize=function(){this.pages=this.entity.parent.findByTag("Page"),this.edges=this.entity.findByTag("PageEdge"),window.edges=this.edges,this.prevButton&&this.prevButton.button&&this.prevButton.button.on("click",this.onPrevButtonClick.bind(this)),this.nextButton&&this.nextButton.button&&this.nextButton.button.on("click",this.onNextButtonClick.bind(this)),this.on("attr:prevButton",function(t,n){this.prevButton&&this.prevButton.button?(window.prev=this.prevButton,console.log(this.prevButton),this.prevButton.button.on("click",this.onPrevButtonClick.bind(this))):(this.prevButton=n,alert("请选择一个按钮"))}),this.on("attr:nextButton",function(t,n){this.nextButton&&this.nextButton.button?this.nextButton.button.on("click",this.onNextButtonClick.bind(this)):(this.nextButton=n,alert("请选择一个按钮"))}),window.edges=this.edges},UiController.prototype.onPrevButtonClick=function(){this.pageIndex=Math.max(0,this.pageIndex-1),this.tab()},UiController.prototype.onNextButtonClick=function(){this.pageIndex=Math.min(this.pages.length-1,this.pageIndex+1),this.tab()},UiController.prototype.tab=function(){var t=this.pageIndex;this.pages.forEach(function(n,e){n.enabled=e==t}),this.edges.forEach(function(n,e){n.element&&(n.element.spriteFrame=e==t?0:1)}),this.app.fire("page.tab",this.pageIndex)},UiController.prototype.update=function(t){};var HtmlLoader=pc.createScript("htmlLoader");HtmlLoader.attributes.add("css",{type:"asset",assetType:"css",title:"CSS Asset"}),HtmlLoader.attributes.add("html",{type:"asset",assetType:"html",title:"HTML Asset"}),HtmlLoader.attributes.add("defaultShow",{type:"boolean",default:!1,title:"默认显示状态",description:"默认显示或隐藏"}),HtmlLoader.prototype.initialize=function(){this.initDom(),this.on("state",this.onStateChange.bind(this))},HtmlLoader.prototype.initDom=function(t){var e=document.createElement("style");document.head.appendChild(e),e.innerHTML=this.css.resource||"",this.div=document.createElement("div"),this.div.classList.add("page"),this.div.innerHTML=this.html.resource||"",this.div.style.display=this.defaultShow?"block":"none",document.body.appendChild(this.div)},HtmlLoader.prototype.onStateChange=function(t){this.div.style.display=t?"block":"none"};var PoseTriggerHandler=pc.createScript("poseTriggerHandler");PoseTriggerHandler.attributes.add("cameraPosition",{type:"vec3",title:"相机位置",description:"决定相机视角两要素之一的相机位置(相机角度始终注视模型)"}),PoseTriggerHandler.prototype.initialize=function(){this.camera=this.entity.root.findByName("Camera"),this.orbitControl=this.camera.script.orbitCamera;var t=this.entity.root.findByName("Model");this.pivot=t?t.getPosition():new pc.Vec3(0,0,0),this.doTransition=!1,this.entity.button&&this.entity.button.on("click",this.onTtriggerClick.bind(this))},PoseTriggerHandler.prototype.onTtriggerClick=function(){this.camera&&this.camera.script&&this.camera.script.orbitCamera&&(this.oldRotation=this.camera.localRotation,this.oldPosition=this.camera.localPosition,this.targetRotation=(new pc.Quat).setFromMat4((new pc.Mat4).setLookAt(this.cameraPosition,this.pivot,new pc.Vec3(0,1,0))),this.targetPosition=this.cameraPosition,this.transitionLerp=0,this.doTransition=!0)},PoseTriggerHandler.prototype.update=function(t){if(this.doTransition)if(this.transitionLerp=pc.math.clamp(this.transitionLerp+t/1,0,1),this.transitionLerp<1){var i=(new pc.Vec3).lerp(this.oldPosition,this.targetPosition,this.transitionLerp),o=(new pc.Quat).slerp(this.oldRotation,this.targetRotation,this.transitionLerp);this.camera.setPosition(i.x,i.y,i.z),this.camera.setRotation(o.x,o.y,o.z,o.w)}else this.orbitControl.enabled=!0,this.orbitControl.resetAndLookAtPoint(this.targetPosition,this.pivot),this.doTransition=!1};var LineRender=pc.createScript("lineRender");LineRender.prototype.initialize=function(){var e=this.entity.model.model;window.model=e,e.generateWireframe();for(var n=0;n<e.meshInstances.length;n++)e.meshInstances[n].renderStyle=pc.RENDERSTYLE_WIREFRAME},LineRender.prototype.update=function(e){};var CustomShader=pc.createScript("customShader");CustomShader.attributes.add("vs",{type:"asset",assetType:"shader",title:"Vertex Shader"}),CustomShader.attributes.add("fs",{type:"asset",assetType:"shader",title:"Fragment Shader"}),CustomShader.prototype.initialize=function(){var e=this.app,t=this.entity.model.model;t.generateWireframe();for(var a=0;a<t.meshInstances.length;a++)t.meshInstances[a].renderStyle=pc.RENDERSTYLE_WIREFRAME;var s=e.graphicsDevice,r=this.vs.resource,i="precision "+s.precision+" float;\n";i+=this.fs.resource;var h={attributes:{aPosition:pc.SEMANTIC_POSITION,aUv0:pc.SEMANTIC_TEXCOORD0},vshader:r,fshader:i};this.shader=new pc.Shader(s,h),this.material=new pc.Material,this.material.setShader(this.shader),this.time=0,this.material.setParameter("time",0),this.material.update(),t.meshInstances[0].material=this.material},CustomShader.prototype.update=function(e){this.time+=e,this.material.setParameter("time",this.time)};pc.script.attribute("materials","asset",[],{type:"material"}),pc.script.attribute("shader","asset",[],{type:"shader",max:1});var Plasma=pc.createScript("plasma");Plasma.attributes.add("materials",{type:"asset",array:!0}),Plasma.attributes.add("shader",{type:"asset"}),Plasma.prototype.initialize=function(){var t=this.shader.resource;window.model=this.entity.model;for(var a=0;a<this.materials.length;a++){var e=this.materials[a].resource;e.chunks.emissiveConstPS=t,e.diffuseMap=new pc.Texture(this.app.graphicsDevice,{width:1,height:1,format:pc.PIXELFORMAT_R8_G8_B8}),e.setParameter("iGlobalTime",0),e.update()}this.time=0},Plasma.prototype.update=function(t){this.time+=t;for(var a=0;a<this.materials.length;a++){this.materials[a].resource.setParameter("iGlobalTime",this.time)}};pc.script.createLoadingScreen(function(e){var t,a;t=["body {"," background-color: #283538;","}","#application-splash-wrapper {"," position: absolute;"," top: 0;"," left: 0;"," height: 100%;"," width: 100%;"," background-color: #283538;","}","#application-splash {"," position: absolute;"," top: calc(50% - 28px);"," width: 264px;"," left: calc(50% - 132px);","}","#application-splash img {"," width: 100%;","}","#progress-bar-container {"," margin: 20px auto 0 auto;"," height: 2px;"," width: 100%;"," background-color: #1d292c;","}","#progress-bar {"," width: 0%;"," height: 100%;"," background-color: #f60;","}","@media (max-width: 480px) {"," #application-splash {"," width: 170px;"," left: calc(50% - 85px);"," }","}"].join("\n"),(a=document.createElement("style")).type="text/css",a.styleSheet?a.styleSheet.cssText=t:a.appendChild(document.createTextNode(t)),document.head.appendChild(a),function(){var e=document.createElement("div");e.id="application-splash-wrapper",document.body.appendChild(e);var t=document.createElement("div");t.id="application-splash",e.appendChild(t),t.style.display="none";var a=document.createElement("img");a.src="http://video.cgaii.com/new4dage/images/images/logo.svg",t.appendChild(a),a.onload=function(){t.style.display="block"};var o=document.createElement("div");o.id="progress-bar-container",t.appendChild(o);var n=document.createElement("div");n.id="progress-bar",o.appendChild(n)}(),e.on("preload:end",function(){e.off("preload:progress")}),e.on("preload:progress",function(e){var t=document.getElementById("progress-bar");t&&(e=Math.min(1,Math.max(0,e)),t.style.width=100*e+"%")}),e.on("start",function(){var e=document.getElementById("application-splash-wrapper");e.parentElement.removeChild(e)})});var ScrollingTexture=pc.createScript("scrollingTexture");ScrollingTexture.attributes.add("materialAsset",{type:"asset"}),ScrollingTexture.attributes.add("speed",{type:"vec2"}),ScrollingTexture.tmp=new pc.Vec2,ScrollingTexture.prototype.initialize=function(){this.materialAsset&&(this.material=this.materialAsset.resource)},ScrollingTexture.prototype.update=function(e){var t=ScrollingTexture.tmp;t.set(this.speed.x,this.speed.y),t.scale(e),this.material.diffuseMapOffset=this.material.diffuseMapOffset.add(t),this.material.normalMapOffset.add(t),this.material.update()};var DisplayController=pc.createScript("displayController");DisplayController.attributes.add("nomalTextures",{type:"asset",assetType:"texture"}),DisplayController.attributes.add("activeTextures",{type:"asset",assetType:"texture"}),DisplayController.prototype.initialize=function(){this.fish=this.entity.findByName("Fish"),this.water=this.entity.findByName("Water"),this.smokes=this.entity.findByTag("Smoke"),this.info=this.entity.findByName("Infomation"),this.orbitCamera=this.entity.root.findByName("Camera").script.orbitCamera,window.test=this,this.app.on("display.greete",this.playGreete.bind(this)),this.app.on("display.info",this.playInfo.bind(this)),this.app.on("reset.info",this.resetInfo.bind(this)),this.app.on("display.fish",this.playFish.bind(this)),this.app.on("reset.fish",this.resetFish.bind(this)),this.app.on("display.water",this.playWater.bind(this)),this.app.on("reset.water",this.resetWater.bind(this)),this.app.on("display.smoke",this.playSmoke.bind(this)),this.app.on("reset.smoke",this.resetSmoke.bind(this)),this.app.on("display.reset",this.onDisplayReset.bind(this)),this.app.fire("display.reset"),this.resetInfo(),this.playGreete();var t=this.entity.findByName("Circle");setTimeout(function(){t.enabled=!0},5e3)},DisplayController.prototype.onDisplayReset=function(){this.resetFish(),this.resetWater(),this.resetSmoke()},DisplayController.prototype.playFish=function(){var t=this.nomalTextures.resource;this.fish.model.meshInstances.forEach(function(e,i){0===i&&(e.material.diffuseMap=t,e.material.update()),e.visible=!0})},DisplayController.prototype.resetFish=function(){var t=this.activeTextures.resource;this.fish.model.meshInstances.forEach(function(e){if("panzi"==e.node.name)return e.material.diffuseMap=t,void e.material.update();e.visible=!1})},DisplayController.prototype.playWater=function(){this.water.enabled=!0},DisplayController.prototype.resetWater=function(){this.water.enabled=!1},DisplayController.prototype.playSmoke=function(){this.smokes.forEach(function(t){t.enabled=!0})},DisplayController.prototype.resetSmoke=function(){this.smokes.forEach(function(t){t.enabled=!1})},DisplayController.prototype.playInfo=function(){this.infoUpdate=!0,this.infoDuration=1.5,this.infoProgress=0,this.currentPitch=-2.5,this.currentYaw=-23,this.info.model.meshInstances.forEach(function(t){t.material.opacity=1,t.material.update()})},DisplayController.prototype.resetInfo=function(){this.infoUpdate=!1,this.info.model.meshInstances.forEach(function(t){t.material.opacity=0,t.material.alphaTest=1,t.material.update()})},DisplayController.prototype.playGreete=function(){this.greeteUpdate=!0,this.greeteDuration=2,this.greeteProgress=0,this.currentDistance=this.orbitCamera.distance},DisplayController.prototype.update=function(t){if(this.infoUpdate){this.infoProgress=pc.math.clamp(this.infoProgress+t/this.infoDuration,0,1);var e=1-this.infoProgress;this.info.model.meshInstances.forEach(function(t){t.material.alphaTest=e,t.material.update()}),this.orbitCamera.pitch=pc.math.lerp(this.currentPitch,-28,this.infoProgress),this.orbitCamera.yaw=pc.math.lerp(this.currentYaw,34,this.infoProgress),this.orbitCamera.distance=pc.math.lerp(this.currentDistance,7.7,this.infoProgress),1==this.infoProgress&&(this.infoUpdate=!1)}this.greeteUpdate&&(this.greeteProgress=pc.math.clamp(this.greeteProgress+t/this.greeteDuration,0,1),this.orbitCamera.distance=pc.math.lerp(this.currentDistance,9,this.greeteProgress),1==this.greeteProgress&&(this.greeteUpdate=!1))};var DisplayTrigger=pc.createScript("displayTrigger");DisplayTrigger.attributes.add("name",{type:"string",title:"事件名称"}),DisplayTrigger.prototype.initialize=function(){this.entity.button.on("click",this.onClick.bind(this))},DisplayTrigger.prototype.onClick=function(i){this.app.fire("display."+this.name)},DisplayTrigger.prototype.update=function(i){};var InfoTrigger=pc.createScript("infoTrigger");InfoTrigger.prototype.initialize=function(){this.on("state",this.onStateChange.bind(this)),this.app.fire("display.info")},InfoTrigger.prototype.onStateChange=function(i,t){i?this.app.fire("display.info"):this.app.fire("reset.info")},InfoTrigger.prototype.update=function(i){};var Page4=pc.createScript("page4");Page4.prototype.initialize=function(){},Page4.prototype.update=function(e){};var Page4Handeler=pc.createScript("page4Handeler");Page4Handeler.prototype.initialize=function(){this.on("state",this.onStateChange.bind(this))},Page4Handeler.prototype.onStateChange=function(e){e||this.app.fire("display.reset")},Page4Handeler.prototype.update=function(e){};var AudioController=pc.createScript("audioController");AudioController.prototype.initialize=function(){this.bgm=this.entity.sound.slot("bgm"),this.ui=this.entity.element,this.ui.spriteFrame=this.bgm.isPlaying?0:1,this.entity.button.on("click",this.onClick.bind(this)),window.audioController=this},AudioController.prototype.onClick=function(){this.bgm.isPlaying?(this.bgm.pause(),this.ui.spriteFrame=1):(this.bgm.play(),this.ui.spriteFrame=0)},AudioController.prototype.update=function(i){};var Rotate=pc.createScript("rotate");Rotate.attributes.add("rotateSpeed",{type:"number",default:10}),Rotate.prototype.initialize=function(){},Rotate.prototype.update=function(t){this.entity.rotate(0,this.rotateSpeed*t,0)};var FishInteractive=pc.createScript("fishInteractive");FishInteractive.prototype.initialize=function(){this.app.touch.on(pc.EVENT_TOUCHMOVE,this.onTouchMove,this),window.fish=this.entity},FishInteractive.prototype.onTouchMove=function(t){this.entity.enabled&&(this.interactiveUpdate=!0,this.interactiveDuration=2,this.interactiveProgress=0)},FishInteractive.prototype.update=function(t){this.interactiveUpdate&&(this.interactiveProgress=pc.math.clamp(this.interactiveProgress+t/this.interactiveDuration,0,1),this.entity.animation.speed=pc.math.lerp(4,1,this.interactiveProgress),1==this.interactiveProgress&&(this.interactiveUpdate=!1))};