Commit 24e624ed authored by 汪欢's avatar 汪欢

2

parent a5553149
/**
* Created by rockyl on 2019-12-16.
*/
const customId = 'jiugong-turntable-change-automatic-rotate';
(async function () {
let customModule = await fetch(`../meta.json`);
customModule = await customModule.json();
console.log(customModule);
await loadAssets(customModule.assets);
launchWithCustomModule(customModule);
})();
function launchWithCustomModule(customModule) {
//engine.registerCustomCodeModule(customModule);
engine.registerCustomModule(customId, window[customId]);
const {props: propsOption, assets} = customModule;
let props = engine.computeProps(customModuleProps, propsOption);
const customModuleIns = {
id: customId,
props,
assets,
};
engine.registerCustomModules([customModuleIns]);
engine.launchWithConfig({
options: {
entrySceneView: 'entry',
},
assets: [],
views: [{
name: 'entry',
type: 'node',
properties: {
x: 0,
y: 0,
}
}],
}, null, function () {
setTimeout(() => {
engine.addCustomModule(customId, engine.gameStage.sceneContainer.getChildAt(0));
}, 100);
let pram = [
{
id:1,
name:'奖品1奖品1',
img:'//yun.dui88.com/images/201907/ui83og75fr.png'
},
{
id:2,
name:'奖品2奖品2奖品2',
img:'//yun.dui88.com/images/201907/ui83og75fr.png'
},
{
id:3,
name:'奖品333333',
img:'//yun.dui88.com/images/201907/ui83og75fr.png'
},
{
id:4,
name:'奖品4545545454',
img:'//yun.dui88.com/images/201907/ui83og75fr.png'
},
{
id:5,
name:'奖奖品5奖品5奖品5品5',
img:'//yun.dui88.com/images/201907/ui83og75fr.png'
},
{
id:6,
name:'奖品6',
img:'//yun.dui88.com/images/201907/ui83og75fr.png'
},
{
id:7,
name:'奖品7',
img:'//yun.dui88.com/images/201907/ui83og75fr.png'
},
{
id:8,
name:'奖品奖品5奖品5奖品58',
img:'//yun.dui88.com/images/201907/ui83og75fr.png'
}
]
setTimeout(() => {
engine.globalEvent.dispatchEvent('jiugong-turntable-change-init')
}, 1000);
setTimeout(() => {
engine.globalEvent.dispatchEvent('jiugong-turntable-change-prizeData',{resources:pram})
}, 1500);
setTimeout(() => {
engine.globalEvent.dispatchEvent('jiugong-turntable-change-start')
}, 4000);
let pram1 = [
{
id:1,
name:'奖品1',
img:'//yun.dui88.com/images/201907/ui83og75fr.png'
},
{
id:2,
name:'奖品2',
img:'//yun.dui88.com/images/201907/ui83og75fr.png'
},
{
id:3,
name:'奖品3',
img:'//yun.dui88.com/images/201907/ui83og75fr.png'
},
{
id:4,
name:'奖品4',
img:'//yun.dui88.com/images/201907/ui83og75fr.png'
},
{
id:5,
name:'奖品5',
img:'//yun.dui88.com/images/201907/ui83og75fr.png'
},
{
id:6,
name:'奖品6',
img:'//yun.dui88.com/images/201907/ui83og75fr.png'
},
{
id:7,
name:'奖品7',
img:'//yun.dui88.com/images/201907/ui83og75fr.png'
},
{
id:8,
name:'奖品8',
img:'//yun.dui88.com/images/201907/ui83og75fr.png'
}
]
setTimeout(() => {
engine.globalEvent.dispatchEvent('jiugong-turntable-change-winPrize',{prizeID:4})
}, 6000);
// setTimeout(() => {
// engine.globalEvent.dispatchEvent('jiugong-turntable-change-prizeData',{resources:pram1})
// }, 10000);
});
}
function getAssetByUUID(uuid) {
return engine.resolveCustomAsset(customId, uuid);
}
function getProps() {
return engine.getProps(customId);
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>九宫格答题-更换奖池</title>
<meta name="viewport"
content="width=device-width,initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no"/>
<meta name="apple-mobile-web-app-capable" content="yes"/>
<meta name="full-screen" content="true"/>
<meta name="screen-orientation" content="portrait"/>
<meta name="x5-fullscreen" content="true"/>
<meta name="360-fullscreen" content="true"/>
<style>
html,
body {
padding: 0;
margin: 0;
border: 0;
width: 100%;
height: 100%;
overflow: hidden;
position: absolute;
background-color: #000000;
}
</style>
</head>
<body>
<div id="game-container" style="line-height:0;font-size:0"></div>
<script src="//yun.duiba.com.cn/editor/zeroing/libs/engine.ebc906f6b50b8da0a669f77027981d5f3cb560ce.js"></script>
<!--<script src="http://localhost:4002/debug/engine.js"></script>
<script src="http://localhost:4003/debug/engine-svga.js"></script>-->
<!--//yun.duiba.com.cn/aurora/assets/6a63b68a1fd87eaf60a515968f91a0b1014fe640.ttf-->
<script src="//yun.duiba.com.cn/editor/zeroing/libs/svga.fd3923ae6e664251ca7981801a65809cc5f36bc3.js"> </script>
<!--<script src="//yun.duiba.com.cn/editor/zeroing/libs/engine.9a9dbfda4cb2dd5508ecddfe3d95dfd88063f7b5.js"></script>-->
<script src="app.js"></script>
<script src="props.js"></script>
<script src="load-assets.js"></script>
<script src="main.js"></script>
<script>
</script>
</body>
\ No newline at end of file
/**
* Created by rockyl on 2020-01-21.
*/
const assets = [
];
function loadAssets(customModuleAssets, onProgress, onComplete){
return engine.loadAssets(assets.concat(...customModuleAssets), onProgress, onComplete);
}
"use strict";var tslib=require("tslib");function getTexture(e){return engine.Texture.from(getAssetByUUID(e).uuid)}function getTextureByName(e){return getTexture(engine.getAssetByName(e).uuid)}var props={};function prepareProps(){var e=getProps();engine.injectProp(props,e)}function injectProps(e){engine.injectProp(props,e)}var Turntable=function(t){function e(){var e=t.call(this)||this;return e._vertical_Y=props.vertical||20,e._horizontal_X=props.horizontal||20,e._prizeIndex=0,e._boxArray=[],e._boxIndex=0,e.tweenTime=props.tweenTime||200,e.slowTweenTime=props.slowTweenTime||200,e.circleNumber=0,e.turntableOrder=[1,2,3,5,8,7,6,4],e.recordID=-1,e.boxPrizeIndex=-1,e.slowDown=!1,e.isStop=!1,e.automaticFlag=!0,e}return tslib.__extends(e,t),e.prototype.initData=function(e){this.initTurntable(e),this.setNodeOrder()},e.prototype.initTurntable=function(e){var t=null;this._turnTableNode&&(this.removeChild(this._turnTableNode),this._turnTableNode=null,this._boxArray=[],this._prizeIndex=0,this._boxIndex=0),t=this._turnTableNode=new engine.Container,this.addChild(t);for(var i=0;i<3;i++)for(var n,r,o,a,s,h,p=0;p<3;p++){1==p&&1==i||(n=new engine.Container,r=this.getImage("unchecked",1),o=this.getImage("checked",0),n.width=Math.max(r.width,o.width),this._singleNodeWidth=this._singleNodeWidth?this._singleNodeWidth:n.width,n.height=Math.max(r.height,o.height),n.x=p*(n.width+this._horizontal_X),n.y=i*(n.height+this._vertical_Y),n.addChild(r),n.addChild(o),a=new engine.Sprite(engine.Texture.fromImage(e[this._prizeIndex].img)),s=e[this._prizeIndex].id,a.width=props.icon_width,a.height=props.icon_height,a.x=(n.width-a.width)/2+props.icon_X,a.y=(n.height-a.height)/2+props.icon_Y,n.prizeID=s,n.addChild(a),(h=new engine.Label).fillColor=props.prizeName_color,h.size=props.prizeName_size,h.width=r.width,h.textAlign=engine.TEXT_ALIGN.CENTER,h.x=0,h.y=props.prizeName_Ypos,h.text=this.fixTitle(e[this._prizeIndex].name),n.addChild(h),this._prizeIndex++,this._boxArray.push(n),t.addChild(n))}t.x=(750-(3*this._singleNodeWidth+2*this._horizontal_X))/2},e.prototype.setNodeOrder=function(){for(var e=[],t=0;t<this.turntableOrder.length;t++){var i=this.turntableOrder[t];e.push(this._boxArray[i-1])}this._boxArray=e},e.prototype.fixTitle=function(e){if(!e)return"";if(e.split("").length<props.prizeName_maxLength)return e;for(var t="",i=0;i<props.prizeName_retainLength;i++)t+=e.split("")[i];return t+="..."},e.prototype.getImage=function(e,t){var i=new engine.Sprite(getTextureByName(e));return i.x=0,i.y=0,i.alpha=t,i.name=e,i},e.prototype.automaticRotate=function(){var e=this;console.log("enter the automatic rotate");var t=this._boxArray[this._boxIndex].getChildByName("checked");if(this.tweenTime=1e3,!this.automaticFlag)return this._boxIndex=0,this.tweenTime=props.tweenTime||200,void engine.Tween.removeTweens(t);engine.Tween.get(t).to({alpha:1},this.tweenTime/2).to({alpha:0},this.tweenTime/2).call(function(){e._boxIndex++,e._boxIndex>=e._boxArray.length&&(e._boxIndex=0),e.automaticRotate()})},e.prototype.startDraw=function(){var e=this;this.automaticFlag=!1;var t=this._boxArray[this._boxIndex].getChildByName("checked");this.isStop?engine.Tween.removeTweens(t):(this.slowDown&&(this._boxIndex!=this.getNodeIndexOFprize()?this.tweenTime+=this.slowTweenTime:(this.isStop=!0,this.twinkle(t),this.automaticFlag=!0)),engine.Tween.get(t).to({alpha:1},this.tweenTime/2).to({alpha:0},this.tweenTime/2).call(function(){e.circleNumber>=props.circleNumber&&e.getSlowStart()==e._boxIndex&&(e.slowDown=!0),e._boxIndex++,e._boxIndex>=e._boxArray.length&&(e._boxIndex=0,e.circleNumber++),e.startDraw()}))},e.prototype.getSlowStart=function(){if(this.recordID<0)return-1;var e=this.getNodeIndexOFprize();return e<4?e+4:e-4},e.prototype.getNodeIndexOFprize=function(){if(this.recordID<0)return-1;for(var e=0;e<this._boxArray.length;e++){if(this._boxArray[e].prizeID===this.recordID)return e}return-1},e.prototype.twinkle=function(e){engine.Tween.removeTweens(e);var t=1;engine.Tween.get(e,{loop:!0}).to({alpha:0},30).to({alpha:1},30).call(function(){return 5<t?(engine.Tween.removeTweens(e),void engine.globalEvent.dispatchEvent("jiugong-turntable-change-over")):void t++})},e.prototype.setRecordID=function(e){this.recordID=e},e.prototype.reset=function(){this._boxArray.forEach(function(e){engine.Tween.removeTweens(e.getChildByName("checked"))}),this._boxIndex=0,this.tweenTime=props.tweenTime||200,this.slowTweenTime=props.slowTweenTime||200,this.circleNumber=0,this.recordID=-1,this.boxPrizeIndex=-1,this.slowDown=!1,this.isStop=!1,this.automaticFlag=!0;for(var e=0;e<this._boxArray.length;e++){this._boxArray[e].getChildByName("checked").alpha=0}},e}(engine.Container),GameView=function(e){function t(){return e.call(this)||this}return tslib.__extends(t,e),t.prototype.setup=function(){var e;this._hasSetup||(this._hasSetup=!0,e=this._turntable=new Turntable,this.addChild(e))},t.prototype.setPrizeData=function(e){this._turntable.initData(e),this._turntable.automaticRotate()},t.prototype.startDraw=function(){this._turntable.startDraw()},t.prototype.setRecordID=function(e){this._turntable.setRecordID(e)},t.prototype.reset=function(){this._turntable.reset()},t.prototype.setSetup=function(){this._hasSetup=!1},t}(engine.Container),GameWrapper=function(t){function e(){var e=t.call(this)||this;return engine.globalEvent.addEventListener("jiugong-turntable-change-init",e.init,e),engine.globalEvent.addEventListener("jiugong-turntable-change-prizeData",e.initPrizeData,e),engine.globalEvent.addEventListener("jiugong-turntable-change-start",e.start,e),engine.globalEvent.addEventListener("jiugong-turntable-change-winPrize",e.winPrize,e),engine.globalEvent.addEventListener("jiugong-turntable-change-reset",e.reset,e),engine.globalEvent.addEventListener("jiugong-turntable-change-abnormal",e.reset,e),e}return tslib.__extends(e,t),e.prototype.init=function(e){var t=this._gameView=new GameView;this.addChild(t),this._gameView.setup()},e.prototype.initPrizeData=function(e){this._gameView.setSetup(),this._gameView.setPrizeData(e.data.resources)},e.prototype.start=function(e){this._gameView.startDraw()},e.prototype.winPrize=function(e){this._gameView.setRecordID(e.data.prizeID)},e.prototype.reset=function(){this._gameView.reset()},e}(engine.Container);function index(e){return prepareProps(),injectProps(e),new GameWrapper}module.exports=index;
{"version":3,"file":"index.js","sources":["src/custom/jiugong-turntable-change-automatic-rotate/src/game/utils.ts","src/custom/jiugong-turntable-change-automatic-rotate/src/props.ts","src/custom/jiugong-turntable-change-automatic-rotate/src/game/turntable.ts","src/custom/jiugong-turntable-change-automatic-rotate/src/game/GameView.ts","src/custom/jiugong-turntable-change-automatic-rotate/src/game/GameWrapper.ts","src/custom/jiugong-turntable-change-automatic-rotate/src/index.ts"],"sourcesContent":["\r\n/**\r\n * Created by rockyl on 2020-01-21.\r\n */\r\n\r\nexport function getTexture(uuid) {\r\n\treturn engine.Texture.from(getAssetByUUID(uuid).uuid);\r\n}\r\n\r\nexport function getTextureByName(name) {\r\n\treturn getTexture(engine.getAssetByName(name).uuid);\r\n}\r\n\r\nexport function playSound(name) {\r\n\tengine.playSound(engine.getAssetByName(name).uuid, {keep: true});\r\n}\r\nexport function getStage(){\r\n\treturn engine.gameStage.stage;\r\n}","/**\r\n * Created by rockyl on 2020-01-21.\r\n */\r\n\r\nexport let props: any = {};\r\n\r\nexport function prepareProps() {\r\n\tlet metaProps = getProps();\r\n\r\n\tengine.injectProp(props, metaProps);\r\n}\r\n\r\nexport function injectProps(p) {\r\n\tengine.injectProp(props, p);\r\n}\r\n","\r\nimport {getTextureByName} from \"./utils\";\r\nimport {getStage} from \"./utils\";\r\n\r\nimport { props } from '../props';\r\n\r\nexport class Turntable extends engine.Container{\r\n private _turnTableNode:engine.Container;\r\n private _vertical_Y = props.vertical || 20;//纵向间距\r\n private _horizontal_X = props.horizontal || 20;//横向间距\r\n private _prizeIndex = 0;\r\n\r\n private _boxArray = [];\r\n private _boxIndex = 0;//当前下标\r\n\r\n private tweenTime = props.tweenTime || 200;//单个动画时间(毫秒)\r\n private slowTweenTime = props.slowTweenTime || 200;\r\n private circleNumber = 0;//圈数\r\n\r\n private turntableOrder = [1,2,3,5,8,7,6,4]; \r\n private recordID = -1;//中奖奖品ID\r\n private boxPrizeIndex = -1;//中奖奖品节点下标 \r\n private slowDown = false;//是否开始缓速\r\n private isStop = false;\r\n\r\n private automaticFlag = true;\r\n\r\n private _singleNodeWidth;//单个节点宽度\r\n constructor(){\r\n super()\r\n \r\n }\r\n public initData(res){\r\n this.initTurntable(res);\r\n this.setNodeOrder();\r\n }\r\n initTurntable(res){\r\n let turnTableNode = null;\r\n if(this._turnTableNode){\r\n this.removeChild(this._turnTableNode);\r\n this._turnTableNode = null;\r\n this._boxArray = [];\r\n this._prizeIndex = 0;\r\n this._boxIndex = 0;\r\n }\r\n turnTableNode = this._turnTableNode = new engine.Container();\r\n //turnTableNode.y = 50;\r\n this.addChild(turnTableNode);\r\n for (let index_Y = 0; index_Y < 3; index_Y++) {\r\n for (let index_X = 0; index_X < 3; index_X++) { \r\n if(index_X == 1 && index_Y == 1)continue;\r\n let tmpNode:any = new engine.Container()\r\n\r\n let unchecked = this.getImage('unchecked',1);\r\n let checked = this.getImage('checked',0);\r\n\r\n tmpNode.width = Math.max(unchecked.width,checked.width);\r\n this._singleNodeWidth = this._singleNodeWidth ? this._singleNodeWidth : tmpNode.width;\r\n tmpNode.height = Math.max(unchecked.height,checked.height);\r\n tmpNode.x = index_X*(tmpNode.width + this._horizontal_X);\r\n tmpNode.y = index_Y*(tmpNode.height + this._vertical_Y);\r\n tmpNode.addChild(unchecked);\r\n tmpNode.addChild(checked);\r\n \r\n let prize =new engine.Sprite(engine.Texture.fromImage(res[this._prizeIndex].img)) ;\r\n let prizeID = res[this._prizeIndex].id;\r\n prize.width = props.icon_width;\r\n prize.height = props.icon_height;\r\n prize.x = (tmpNode.width - prize.width)/2 + props.icon_X;\r\n prize.y = (tmpNode.height - prize.height)/2 + props.icon_Y;\r\n tmpNode.prizeID = prizeID;\r\n tmpNode.addChild(prize);\r\n \r\n let titleLabel = new engine.Label();\r\n titleLabel.fillColor = props.prizeName_color;\r\n titleLabel.size = props.prizeName_size;\r\n titleLabel.width = unchecked.width;\r\n titleLabel.textAlign = engine.TEXT_ALIGN.CENTER;\r\n titleLabel.x = 0;\r\n titleLabel.y = props.prizeName_Ypos;\r\n \r\n titleLabel.text = this.fixTitle(res[this._prizeIndex].name);\r\n tmpNode.addChild(titleLabel)\r\n \r\n this._prizeIndex ++ ;\r\n this._boxArray.push(tmpNode); \r\n turnTableNode.addChild(tmpNode); \r\n }\r\n }\r\n turnTableNode.x = (750 - (this._singleNodeWidth*3 + this._horizontal_X*2))/2;\r\n }\r\n\r\n setNodeOrder(){\r\n let tmpNodeArray = [];\r\n for (let index = 0; index < this.turntableOrder.length; index++) {\r\n let order = this.turntableOrder[index];\r\n tmpNodeArray.push(this._boxArray[order-1]);\r\n }\r\n this._boxArray = tmpNodeArray;\r\n }\r\n\r\n fixTitle(name){\r\n if(!name){\r\n return \"\"\r\n }\r\n if(name.split(\"\").length<props.prizeName_maxLength){\r\n return name\r\n }\r\n let n = \"\"\r\n for(let i=0;i<props.prizeName_retainLength;i++){\r\n n += name.split(\"\")[i]\r\n }\r\n n+=\"...\"\r\n return n\r\n }\r\n\r\n getImage(resName,alpha){\r\n let tmpImage = new engine.Sprite(getTextureByName(resName));\r\n tmpImage.x = 0\r\n tmpImage.y = 0\r\n tmpImage.alpha = alpha;\r\n tmpImage.name = resName;\r\n return tmpImage;\r\n }\r\n automaticRotate(){\r\n let tmpCheckNode = this._boxArray[this._boxIndex].getChildByName('checked');\r\n // this.slowDown = true;\r\n this.tweenTime = 1000;\r\n if(!this.automaticFlag){\r\n this._boxIndex = 0;\r\n this.tweenTime = props.tweenTime || 200;\r\n // this.slowDown = false;\r\n engine.Tween.removeTweens(tmpCheckNode);return}\r\n // if(this.slowDown)\r\n // {\r\n // if(this._boxIndex != this.getNodeIndexOFprize()){\r\n // this.tweenTime += this.slowTweenTime;\r\n // }else{\r\n // this.isStop = true;\r\n // this.twinkle(tmpCheckNode);\r\n // }\r\n // }\r\n \r\n engine.Tween.get(tmpCheckNode)\r\n .to({alpha:1},this.tweenTime/2)\r\n .to({alpha:0},this.tweenTime/2)\r\n .call(()=>{\r\n // if(this.circleNumber >= props.circleNumber && this.getSlowStart() == this._boxIndex){\r\n // this.slowDown = true;\r\n // }\r\n this._boxIndex ++;\r\n if(this._boxIndex >= this._boxArray.length){\r\n this._boxIndex = 0;\r\n // this.circleNumber++;\r\n }\r\n // if(!this.automaticFlag){\r\n // this._boxIndex = 0;\r\n // engine.Tween.removeTweens(tmpCheckNode);\r\n // // return;\r\n // }\r\n \r\n this.automaticRotate();\r\n \r\n })\r\n }\r\n\r\n startDraw(){\r\n this.automaticFlag = false;\r\n let tmpCheckNode = this._boxArray[this._boxIndex].getChildByName('checked');\r\n if(this.isStop){engine.Tween.removeTweens(tmpCheckNode);return}\r\n if(this.slowDown)\r\n {\r\n if(this._boxIndex != this.getNodeIndexOFprize()){\r\n this.tweenTime += this.slowTweenTime;\r\n }else{\r\n this.isStop = true;\r\n this.twinkle(tmpCheckNode);\r\n\r\n this.automaticFlag = true;\r\n }\r\n }\r\n engine.Tween.get(tmpCheckNode)\r\n .to({alpha:1},this.tweenTime/2)\r\n .to({alpha:0},this.tweenTime/2)\r\n .call(()=>{\r\n if(this.circleNumber >= props.circleNumber && this.getSlowStart() == this._boxIndex){\r\n this.slowDown = true;\r\n }\r\n this._boxIndex ++;\r\n if(this._boxIndex >= this._boxArray.length){\r\n this._boxIndex = 0;\r\n this.circleNumber++;\r\n }\r\n \r\n this.startDraw();\r\n \r\n \r\n })\r\n }\r\n\r\n //获取开始减速的下标\r\n private getSlowStart(){\r\n if(this.recordID < 0)return -1;\r\n let tmpIndex = this.getNodeIndexOFprize();\r\n if(tmpIndex < 4){\r\n return tmpIndex + 4;\r\n }else{\r\n return tmpIndex - 4\r\n }\r\n }\r\n //获取奖品节点下标\r\n getNodeIndexOFprize(){\r\n if(this.recordID < 0)return -1;\r\n for (let index = 0; index < this._boxArray.length; index++) {\r\n let element = this._boxArray[index];\r\n if(element.prizeID === this.recordID){\r\n return index;\r\n } \r\n }\r\n return -1;\r\n }\r\n //中奖节点闪烁\r\n twinkle(tmpNode){\r\n engine.Tween.removeTweens(tmpNode)\r\n let twinkleTime = 1;\r\n engine.Tween.get(tmpNode, {loop:true})\r\n .to({alpha:0}, 30)\r\n .to({alpha:1}, 30)\r\n .call(()=>{\r\n if(twinkleTime > 5){\r\n engine.Tween.removeTweens(tmpNode);\r\n engine.globalEvent.dispatchEvent('jiugong-turntable-change-over')\r\n return;\r\n }else{\r\n twinkleTime++;\r\n }\r\n })\r\n }\r\n setRecordID(prizeID){\r\n this.recordID = prizeID;\r\n }\r\n reset(){\r\n this._boxArray.forEach(element => {\r\n engine.Tween.removeTweens(element.getChildByName('checked'));\r\n });\r\n this._boxIndex = 0;//当前下标\r\n this.tweenTime = props.tweenTime || 200;//单个动画时间(毫秒)\r\n this.slowTweenTime = props.slowTweenTime || 200;\r\n this.circleNumber = 0;//圈数\r\n this.recordID = -1;//中奖奖品ID\r\n this.boxPrizeIndex = -1;//中奖奖品节点下标 \r\n this.slowDown = false;//是否开始缓速\r\n this.isStop = false;\r\n\r\n this.automaticFlag = true;\r\n\r\n for (let index = 0; index < this._boxArray.length; index++) {\r\n let element = this._boxArray[index];\r\n element.getChildByName('checked').alpha = 0;\r\n }\r\n \r\n }\r\n\r\n}","\r\n/**\r\n * Created by rockyl on 2018/8/16.\r\n */\r\n\r\nimport {props} from \"../props\";\r\nimport { Turntable } from \"./turntable\";\r\n\r\n\r\n\r\n\r\n\r\nexport default class GameView extends engine.Container {\r\n\r\n\t\r\n\tprivate _hasSetup;\r\n\tprivate _turntable:Turntable;\r\n\tconstructor() {\r\n\t\tsuper();\t\r\n\t}\r\n\t setup(){\r\n\t\tif (this._hasSetup) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis._hasSetup = true;\r\n\t\t\r\n\t\tlet turntable = this._turntable = new Turntable();\r\n\t\tthis.addChild(turntable);\r\n\t}\r\n\tsetPrizeData(res){\r\n\t\tthis._turntable.initData(res);\r\n\t\tthis._turntable.automaticRotate();\r\n\t}\r\n\tstartDraw(){\r\n\t\t// this._turntable.startDraw();\r\n\t}\r\n\tsetRecordID(prizeID){\r\n\t\tthis._turntable.setRecordID(prizeID)\r\n\t}\r\n\treset(){\r\n\t\tthis._turntable.reset();\r\n\t}\r\n\tsetSetup(){\r\n\t\tthis._hasSetup = false;\r\n\t}\r\n}\r\n","\r\n\r\nimport { props } from '../props';\r\n\r\n\r\n/**\r\n * Created by rockyl on 2020-01-09.\r\n */\r\n\r\nimport GameView from \"./GameView\";\r\n\r\nexport class GameWrapper extends engine.Container {\r\n\tprivate _gameView: GameView;\r\n\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tengine.globalEvent.addEventListener('jiugong-turntable-change-init', this.init, this);\r\n\t\tengine.globalEvent.addEventListener('jiugong-turntable-change-prizeData', this.initPrizeData, this);\r\n\r\n\t\tengine.globalEvent.addEventListener('jiugong-turntable-change-start', this.start, this);\r\n\r\n\t\tengine.globalEvent.addEventListener('jiugong-turntable-change-winPrize', this.winPrize, this);\r\n\t\tengine.globalEvent.addEventListener('jiugong-turntable-change-reset', this.reset, this);\r\n\t\tengine.globalEvent.addEventListener('jiugong-turntable-change-abnormal', this.reset, this);\r\n\t}\r\n\r\n\tinit(event: engine.Event) {\r\n\t\t//初始化场景\r\n\t\tlet gameView = this._gameView = new GameView();\r\n\t\tthis.addChild(gameView);\r\n\t\tthis._gameView.setup();\r\n\t}\r\n\tinitPrizeData(event: engine.Event){\r\n\t\tthis._gameView.setSetup();\r\n\t\tthis._gameView.setPrizeData(event.data.resources);\r\n\t}\r\n\r\n\t//开始抽奖\r\n\tstart(event: engine.Event){\r\n\t\tthis._gameView.startDraw();\r\n\t}\r\n\twinPrize(event: engine.Event){\r\n\t\tthis._gameView.setRecordID(event.data.prizeID)\r\n\t}\r\n\treset(){\r\n\t\tthis._gameView.reset();\r\n\t}\r\n\t// private visibilitychange(){\r\n\t// \tdocument.addEventListener('visibilitychange', function () {\r\n // if (document.visibilityState === 'hidden') {\r\n\t// \t\t\tconsole.log('放置后台');\r\n\t// \t\t\tengine.globalEvent.dispatchEvent('answer-game-visibilitychange',{hidden:true});\r\n // }\r\n // });\r\n\t// }\r\n}\r\n","/**\r\n * Created by rockyl on 2019-11-20.\r\n */\r\n\r\nimport {GameWrapper} from \"./game/GameWrapper\";\r\nimport {injectProps, prepareProps} from \"./props\";\r\n\r\nexport default function (props) {\r\n\tprepareProps();\r\n\tinjectProps(props);\r\n\r\n\tlet instance = new GameWrapper();\r\n\treturn instance;\r\n}\r\n"],"names":["__extends"],"mappings":"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"}
\ No newline at end of file
/**
* Created by rockyl on 2020-01-21.
*/
let customModuleProps = {
};
{
"name": "九宫格抽奖-更换奖池",
"desc": "九宫格抽奖模块-更换奖池",
"props": {
"horizontal": {
"alias": "横向间距",
"type": "number",
"default": 1
},
"vertical": {
"alias": "纵向间距",
"type": "number",
"default": 1
},
"circleNumber": {
"alias": "至少转的圈数",
"type": "number",
"default": 3
},
"tweenTime": {
"alias": "单个奖品节点动画时间(毫秒)",
"type": "number",
"default": 200
},
"slowTweenTime": {
"alias": "中奖后缓速递增时长",
"type": "number",
"default": 200
},
"icon_width": {
"alias": "奖品图宽度",
"type": "number",
"default": 110
},
"icon_height": {
"alias": "奖品图高度",
"type": "number",
"default": 110
},
"icon_X": {
"alias": "奖品X轴偏移量(底框背景有透明)",
"type": "number",
"default": 0
},
"icon_Y": {
"alias": "奖品Y轴偏移量(底框背景有透明)",
"type": "number",
"default": -20
},
"prizeName_size": {
"alias": "奖品名字字号",
"type": "number",
"default": 30
},
"prizeName_Ypos": {
"alias": "奖品名字相对于底框的高度",
"type": "number",
"default": 50
},
"prizeName_color": {
"alias": "奖品名字颜色值",
"type": "string",
"default": "#e8805d"
},
"prizeName_maxLength": {
"alias": "奖品名字最长显示长度",
"type": "number",
"default": 8
},
"prizeName_retainLength": {
"alias": "奖品名字超过长度保留多少字数",
"type": "number",
"default": 5
}
},
"assets": [
{
"name": "unchecked",
"url": "//yun.duiba.com.cn/aurora/assets/3351a20f982fea1fbcbbb3b85bc03f6b547c8bbc.png",
"uuid": "48dc9c00-92c3-4926-8d6b-9eb3e0d0668d",
"ext": ".png"
},
{
"name": "checked",
"url": " //yun.duiba.com.cn/aurora/assets/2a9f9ecc43eb912db553fa4685c1987a937f0198.png",
"uuid": "1d7bc84d-689d-4a6a-a023-e4a7b9659083",
"ext": ".png"
}
],
"events": {
"in": {
"jiugong-turntable-change-init": {
"alias": "初始化",
"data": {
}
},
"jiugong-turntable-change-prizeData": {
"alias": "奖品数据",
"data": {
}
},
"jiugong-turntable-change-start": {
"alias": "开始",
"data": {
}
},
"jiugong-turntable-change-winPrize": {
"alias": "中奖",
"data": {
}
},
"jiugong-turntable-change-abnormal": {
"alias": "异常",
"data": {
}
},
"jiugong-turntable-change-reset": {
"alias": "重置",
"data": {
}
}
},
"out": {
"jiugong-turntable-change-over": {
"alias": "结束",
"data": {
}
}
}
}
}
\ No newline at end of file
/**
* Created by rockyl on 2018/8/16.
*/
import {props} from "../props";
import { Turntable } from "./turntable";
export default class GameView extends engine.Container {
private _hasSetup;
private _turntable:Turntable;
constructor() {
super();
}
setup(){
if (this._hasSetup) {
return;
}
this._hasSetup = true;
let turntable = this._turntable = new Turntable();
this.addChild(turntable);
}
setPrizeData(res){
this._turntable.initData(res);
this._turntable.automaticRotate();
}
startDraw(){
this._turntable.startDraw();
}
setRecordID(prizeID){
this._turntable.setRecordID(prizeID)
}
reset(){
this._turntable.reset();
}
setSetup(){
this._hasSetup = false;
}
}
import { props } from '../props';
/**
* Created by rockyl on 2020-01-09.
*/
import GameView from "./GameView";
export class GameWrapper extends engine.Container {
private _gameView: GameView;
constructor() {
super();
engine.globalEvent.addEventListener('jiugong-turntable-change-init', this.init, this);
engine.globalEvent.addEventListener('jiugong-turntable-change-prizeData', this.initPrizeData, this);
engine.globalEvent.addEventListener('jiugong-turntable-change-start', this.start, this);
engine.globalEvent.addEventListener('jiugong-turntable-change-winPrize', this.winPrize, this);
engine.globalEvent.addEventListener('jiugong-turntable-change-reset', this.reset, this);
engine.globalEvent.addEventListener('jiugong-turntable-change-abnormal', this.reset, this);
}
init(event: engine.Event) {
//初始化场景
let gameView = this._gameView = new GameView();
this.addChild(gameView);
this._gameView.setup();
}
initPrizeData(event: engine.Event){
this._gameView.setSetup();
this._gameView.setPrizeData(event.data.resources);
}
//开始抽奖
start(event: engine.Event){
this._gameView.startDraw();
}
winPrize(event: engine.Event){
this._gameView.setRecordID(event.data.prizeID)
}
reset(){
this._gameView.reset();
}
// private visibilitychange(){
// document.addEventListener('visibilitychange', function () {
// if (document.visibilityState === 'hidden') {
// console.log('放置后台');
// engine.globalEvent.dispatchEvent('answer-game-visibilitychange',{hidden:true});
// }
// });
// }
}
import {getTextureByName} from "./utils";
import {getStage} from "./utils";
import { props } from '../props';
export class Turntable extends engine.Container{
private _turnTableNode:engine.Container;
private _vertical_Y = props.vertical || 20;//纵向间距
private _horizontal_X = props.horizontal || 20;//横向间距
private _prizeIndex = 0;
private _boxArray = [];
private _boxIndex = 0;//当前下标
private tweenTime = props.tweenTime || 200;//单个动画时间(毫秒)
private slowTweenTime = props.slowTweenTime || 200;
private circleNumber = 0;//圈数
private turntableOrder = [1,2,3,5,8,7,6,4];
private recordID = -1;//中奖奖品ID
private boxPrizeIndex = -1;//中奖奖品节点下标
private slowDown = false;//是否开始缓速
private isStop = false;
private automaticFlag = true;
private _singleNodeWidth;//单个节点宽度
constructor(){
super()
}
public initData(res){
this.initTurntable(res);
this.setNodeOrder();
}
initTurntable(res){
let turnTableNode = null;
if(this._turnTableNode){
this.removeChild(this._turnTableNode);
this._turnTableNode = null;
this._boxArray = [];
this._prizeIndex = 0;
this._boxIndex = 0;
}
turnTableNode = this._turnTableNode = new engine.Container();
//turnTableNode.y = 50;
this.addChild(turnTableNode);
for (let index_Y = 0; index_Y < 3; index_Y++) {
for (let index_X = 0; index_X < 3; index_X++) {
if(index_X == 1 && index_Y == 1)continue;
let tmpNode:any = new engine.Container()
let unchecked = this.getImage('unchecked',1);
let checked = this.getImage('checked',0);
tmpNode.width = Math.max(unchecked.width,checked.width);
this._singleNodeWidth = this._singleNodeWidth ? this._singleNodeWidth : tmpNode.width;
tmpNode.height = Math.max(unchecked.height,checked.height);
tmpNode.x = index_X*(tmpNode.width + this._horizontal_X);
tmpNode.y = index_Y*(tmpNode.height + this._vertical_Y);
tmpNode.addChild(unchecked);
tmpNode.addChild(checked);
let prize =new engine.Sprite(engine.Texture.fromImage(res[this._prizeIndex].img)) ;
let prizeID = res[this._prizeIndex].id;
prize.width = props.icon_width;
prize.height = props.icon_height;
prize.x = (tmpNode.width - prize.width)/2 + props.icon_X;
prize.y = (tmpNode.height - prize.height)/2 + props.icon_Y;
tmpNode.prizeID = prizeID;
tmpNode.addChild(prize);
let titleLabel = new engine.Label();
titleLabel.fillColor = props.prizeName_color;
titleLabel.size = props.prizeName_size;
titleLabel.width = unchecked.width;
titleLabel.textAlign = engine.TEXT_ALIGN.CENTER;
titleLabel.x = 0;
titleLabel.y = props.prizeName_Ypos;
titleLabel.text = this.fixTitle(res[this._prizeIndex].name);
tmpNode.addChild(titleLabel)
this._prizeIndex ++ ;
this._boxArray.push(tmpNode);
turnTableNode.addChild(tmpNode);
}
}
turnTableNode.x = (750 - (this._singleNodeWidth*3 + this._horizontal_X*2))/2;
}
setNodeOrder(){
let tmpNodeArray = [];
for (let index = 0; index < this.turntableOrder.length; index++) {
let order = this.turntableOrder[index];
tmpNodeArray.push(this._boxArray[order-1]);
}
this._boxArray = tmpNodeArray;
}
fixTitle(name){
if(!name){
return ""
}
if(name.split("").length<props.prizeName_maxLength){
return name
}
let n = ""
for(let i=0;i<props.prizeName_retainLength;i++){
n += name.split("")[i]
}
n+="..."
return n
}
getImage(resName,alpha){
let tmpImage = new engine.Sprite(getTextureByName(resName));
tmpImage.x = 0
tmpImage.y = 0
tmpImage.alpha = alpha;
tmpImage.name = resName;
return tmpImage;
}
automaticRotate(){
console.log('enter the automatic rotate');
let tmpCheckNode = this._boxArray[this._boxIndex].getChildByName('checked');
this.tweenTime = 1000;
if(!this.automaticFlag){
this._boxIndex = 0;
this.tweenTime = props.tweenTime || 200;
engine.Tween.removeTweens(tmpCheckNode);return}
engine.Tween.get(tmpCheckNode)
.to({alpha:1},this.tweenTime/2)
.to({alpha:0},this.tweenTime/2)
.call(()=>{
this._boxIndex ++;
if(this._boxIndex >= this._boxArray.length){
this._boxIndex = 0;
// this.circleNumber++;
}
this.automaticRotate();
})
}
startDraw(){
this.automaticFlag = false;
let tmpCheckNode = this._boxArray[this._boxIndex].getChildByName('checked');
if(this.isStop){engine.Tween.removeTweens(tmpCheckNode);return}
if(this.slowDown)
{
if(this._boxIndex != this.getNodeIndexOFprize()){
this.tweenTime += this.slowTweenTime;
}else{
this.isStop = true;
this.twinkle(tmpCheckNode);
this.automaticFlag = true;
}
}
engine.Tween.get(tmpCheckNode)
.to({alpha:1},this.tweenTime/2)
.to({alpha:0},this.tweenTime/2)
.call(()=>{
if(this.circleNumber >= props.circleNumber && this.getSlowStart() == this._boxIndex){
this.slowDown = true;
}
this._boxIndex ++;
if(this._boxIndex >= this._boxArray.length){
this._boxIndex = 0;
this.circleNumber++;
}
this.startDraw();
})
}
//获取开始减速的下标
private getSlowStart(){
if(this.recordID < 0)return -1;
let tmpIndex = this.getNodeIndexOFprize();
if(tmpIndex < 4){
return tmpIndex + 4;
}else{
return tmpIndex - 4
}
}
//获取奖品节点下标
getNodeIndexOFprize(){
if(this.recordID < 0)return -1;
for (let index = 0; index < this._boxArray.length; index++) {
let element = this._boxArray[index];
if(element.prizeID === this.recordID){
return index;
}
}
return -1;
}
//中奖节点闪烁
twinkle(tmpNode){
engine.Tween.removeTweens(tmpNode)
let twinkleTime = 1;
engine.Tween.get(tmpNode, {loop:true})
.to({alpha:0}, 30)
.to({alpha:1}, 30)
.call(()=>{
if(twinkleTime > 5){
engine.Tween.removeTweens(tmpNode);
engine.globalEvent.dispatchEvent('jiugong-turntable-change-over')
return;
}else{
twinkleTime++;
}
})
}
setRecordID(prizeID){
this.recordID = prizeID;
}
reset(){
this._boxArray.forEach(element => {
engine.Tween.removeTweens(element.getChildByName('checked'));
});
this._boxIndex = 0;//当前下标
this.tweenTime = props.tweenTime || 200;//单个动画时间(毫秒)
this.slowTweenTime = props.slowTweenTime || 200;
this.circleNumber = 0;//圈数
this.recordID = -1;//中奖奖品ID
this.boxPrizeIndex = -1;//中奖奖品节点下标
this.slowDown = false;//是否开始缓速
this.isStop = false;
this.automaticFlag = true;
for (let index = 0; index < this._boxArray.length; index++) {
let element = this._boxArray[index];
element.getChildByName('checked').alpha = 0;
}
}
}
\ No newline at end of file
/**
* Created by rockyl on 2020-01-21.
*/
export function getTexture(uuid) {
return engine.Texture.from(getAssetByUUID(uuid).uuid);
}
export function getTextureByName(name) {
return getTexture(engine.getAssetByName(name).uuid);
}
export function playSound(name) {
engine.playSound(engine.getAssetByName(name).uuid, {keep: true});
}
export function getStage(){
return engine.gameStage.stage;
}
\ No newline at end of file
/**
* Created by rockyl on 2019-11-20.
*/
import {GameWrapper} from "./game/GameWrapper";
import {injectProps, prepareProps} from "./props";
export default function (props) {
prepareProps();
injectProps(props);
let instance = new GameWrapper();
return instance;
}
/**
* Created by rockyl on 2020-01-21.
*/
export let props: any = {};
export function prepareProps() {
let metaProps = getProps();
engine.injectProp(props, metaProps);
}
export function injectProps(p) {
engine.injectProp(props, p);
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment