Commit c7d2c572 authored by 王炽's avatar 王炽

66666666

parent 91229572
No preview for this file type
/**
* Created by renjianfeng on 2020-03-13.
*/
const customId = 'rockji';
(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,
}
}],
customs: []
}, null, function () {
setTimeout(() => {
engine.addCustomModule(customId, engine.gameStage.sceneContainer.getChildAt(0));
engine.globalEvent.dispatchEvent('rock-info', {prizes:[
{
"icon":"//yun.duiba.com.cn/aurora/assets/88d89ba9c3ddac732f2e017023a216be915655e4.png",
"id":"o58df634f",
"index":1,
"name":"一等奖",
"prizeId":"sss_3",
"prizeType":2,
"refId":"49781",
"refType":"virtual"
},
{
"icon":"//yun.duiba.com.cn/aurora/assets/1c0e0fcb192b2e0772bd555c3aae1c86621ccb09.png",
"id":"o4a578392",
"index":2,
"name":"二等奖",
"prizeId":"sss_2",
"prizeType":2,
"refId":"49780",
"refType":"virtual"
},
{
"icon":"//yun.duiba.com.cn/aurora/assets/bc23cd948cdd20467af9abc1f65e08e4f1e9bf30.png",
"id":"o26efbbeb",
"index":3,
"name":"三等奖",
"prizeId":"sss_1",
"prizeType":2,
"refId":"49779",
"refType":"virtual"
}]
});
}, 100);
setTimeout(() => {
engine.globalEvent.dispatchEvent('rock-start',{
prizeId:"sss_3"
});
}, 5000);
});
engine.globalEvent.addEventListener('food-fell-time-update', (e) => {
console.log(e.type, e.data);
});
engine.globalEvent.addEventListener('food-fell-score-update', (e) => {
console.log(e.type, e.data);
});
engine.globalEvent.addEventListener('food-fell-game-over', (e) => {
console.log(e.type, e.data);
});
}
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: white;
}
.game-container{
width: 100%;
height: 100%;
line-height:0;
font-size:0;
}
</style>
</head>
<body>
<div id="game-container" class="game-container"></div>
<!-- <script crossorigin="anonymous" src="//yun.duiba.com.cn/editor/zeroing/libs/engine.50cdcef6ebe4e8c0fbc624f9d4fbf225102c5750.js"></script> -->
<script crossorigin="anonymous" src="//yun.duiba.com.cn/editor/zeroing/libs/engine.fbc60c6d3cb30e5ab97e82d392d9efeee91b8581.js"></script>
<script crossorigin="anonymous" src="//yun.duiba.com.cn/editor/zeroing/libs/svga.fd3923ae6e664251ca7981801a65809cc5f36bc3.js"></script>
<!-- <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> -->
<!--<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 = [
{
"name": "雨滴0",
"url": "//yun.duiba.com.cn/aurora/assets/badb3627bbcc75276a3eed53daa8b0a454ced6eb.png",
"uuid": "d3ce99da-89e1-447d-8c52-b3f391925c3c",
"ext": ".png"
},
{
"name": "雨滴1",
"url": "//yun.duiba.com.cn/aurora/assets/5cc0092913c571eeb52317b8e1e0dc715793049c.png",
"uuid": "02f17008-1d8d-4108-a0fc-03fbc71fd118",
"ext": ".png"
},
{
"name": "雨滴2",
"url": "//yun.duiba.com.cn/aurora/assets/4b938949b85d50b36ef0f66450643495efbf7580.png",
"uuid": "46aa4f8a-9a6c-4210-8ffd-92da0dd3bc75",
"ext": ".png"
},
{
"name": "炸弹",
"url": "//yun.duiba.com.cn/aurora/assets/171e92283cd13c013ee1b76d28d252ff08815d47.png",
"uuid": "eb88b42d-e151-4c1b-94b9-7c16f7bfac29",
"ext": ".png"
},
{
"name": "石块",
"url": "//yun.duiba.com.cn/aurora/assets/99b0af0c59fe79a415a3f032149cfacc27e3ac2c.png",
"uuid": "ab1bdabc-21ba-46bf-9299-6c638f766c88",
"ext": ".png"
},
{
"name": "水花",
"url": "//yun.duiba.com.cn/aurora/assets/11b1f49fa3afa3a48f1dd3e3c1eb294e3fa9d886.svga",
"uuid": "cdd2268f-ad65-4b5e-a965-ee61b730da21",
"ext": ".svga"
},
{
"name": "石头svga",
"url": "//yun.duiba.com.cn/aurora/assets/01aa6fcb33aa8231f075257026eab2f0aeb3c27a.svga",
"uuid": "846a139d-0990-4db4-a323-f22379932ee4",
"ext": ".svga"
},
{
"name": "炸弹svga",
"url": "//yun.duiba.com.cn/aurora/assets/3b58e7ace031b09c651cf8e7202f9c86e86852c9.svga",
"uuid": "d7a3947b-7fcb-48f2-9ddf-2f075d37a619",
"ext": ".svga"
},
{
"name": "玩家",
"url": "//yun.duiba.com.cn/aurora/assets/db0130d36ef79865be9c753ea0627027f16341d8.png",
"uuid": "4931d296-4421-4a2f-8299-7bab87407c72",
"ext": ".png"
}
];
function loadAssets(customModuleAssets, onProgress, onComplete){
return engine.loadAssets(assets.concat(...customModuleAssets), onProgress, onComplete);
}
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('tslib')) :
typeof define === 'function' && define.amd ? define(['tslib'], factory) :
(global = global || self, global.rockji = factory(global.tslib));
}(this, (function (tslib) { 'use strict';
var props = {};
function prepareProps() {
var metaProps = getProps();
engine.injectProp(props, metaProps);
}
function injectProps(p) {
engine.injectProp(props, p);
}
//# sourceMappingURL=props.js.map
var GameView = (function (_super) {
tslib.__extends(GameView, _super);
function GameView() {
var _this = _super.call(this) || this;
_this.once(engine.Event.ADDED_TO_STAGE, _this.setup, _this);
_this.prizeId = props.prizeId;
_this.prizes = props.prizes;
_this.countdown = 150;
_this.timeSpace = 500;
return _this;
}
GameView.prototype.setup = function () {
if (this._hasSetup) {
return;
}
this._hasSetup = true;
this.itemInfo = {};
this.mainContainer = new engine.Container();
this.viewContainer = new engine.Container();
this.addChild(this.viewContainer);
this.viewContainer.width = props.viewWidth;
this.viewContainer.height = props.viewHeight;
this.bgImg = new engine.Image();
this.bgImg.source = getAssetByName("rock-背景").url;
this.viewContainer.addChild(this.bgImg);
this.container0 = new engine.Container();
this.container1 = new engine.Container();
this.container2 = new engine.Container();
this.mainContainer.addChild(this.container0);
this.mainContainer.addChild(this.container1);
this.mainContainer.addChild(this.container2);
this.viewContainer.addChild(this.mainContainer);
this.mainContainer.x = props.cOriginSizeX;
this.mainContainer.y = props.cOriginSizeY;
var mask = new engine.Rect();
mask.x = props.cOriginSizeX;
mask.y = props.cOriginSizeY;
mask.fillColor = 0xffff00;
mask.width = props.maskSizeW;
mask.height = props.maskSizeH;
this.addChild(mask);
this.mainContainer.mask = mask;
if (this.prizes.length > 3) {
this.createItem(2);
this.prizeMaxH = this.prizes.length * (props.imgSizeW + props.spaceSizeY) + props.spaceSizeY;
}
else {
this.createItem(1);
this.prizeMaxH = 4 * (props.imgSizeW + props.spaceSizeY) + props.spaceSizeY;
}
this.orgY = -(this.prizeMaxH - props.maskSizeH) + props.imgSizeH * 0.5;
for (var i = 0; i < 3; i++) {
this['container' + i].x = i * (props.cSpaceSizeX * 2 + props.imgSizeW);
this['container' + i].y = this.orgY;
}
};
GameView.prototype.createItem = function (type) {
var len = 4;
if (type == 1) {
len = 4;
}
else if (type == 2) {
len = this.prizes.length;
}
for (var j = 0; j < 3; j++) {
this.itemInfo["items" + j] = [];
for (var i = 0; i < len; i++) {
var url = this.prizes[i % this.prizes.length].icon;
var item = new engine.Image();
item.source = url;
this.itemInfo["items" + j][i] = item;
this["container" + j].addChild(item);
item.width = props.imgSizeW;
item.height = props.imgSizeH;
item.x = props.spaceSizeX;
item.y = props.spaceSizeY + i * (props.imgSizeH + props.spaceSizeY);
console.log('i=', i);
}
}
};
GameView.prototype.reset = function () {
for (var i = 0; i < 3; i++) {
this["container" + i].y = this.orgY;
}
};
GameView.prototype.start = function () {
var _this = this;
this.prizeId = props.prizeId;
var _loop_1 = function (i) {
engine.Tween.removeTweens(this_1["container" + i]);
setTimeout(function () {
engine.Tween.get(_this["container" + i], { loop: true }).to({ y: 0 }, _this.countdown).call(function () {
_this["container" + i].y = _this.orgY;
});
}, this_1.timeSpace * i);
};
var this_1 = this;
for (var i = 0; i < 3; i++) {
_loop_1(i);
}
setTimeout(function () {
var _loop_2 = function (i) {
setTimeout(function () {
_this["container" + i].y = _this.orgY;
engine.Tween.removeTweens(_this["container" + i]);
engine.Tween.get(_this["container" + i]).to({ y: -(props.imgSizeH * 0.5 + props.spaceSizeY) }, 1500);
}, _this.timeSpace * i);
};
for (var i = 0; i < 3; i++) {
_loop_2(i);
}
_this.setPrizePos();
setTimeout(function () {
engine.globalEvent.dispatchEvent('rock-gameover');
}, _this.timeSpace * 2 + 2000);
}, 2500);
};
GameView.prototype.setPrizePos = function () {
var direct = Math.random() > 0.5 ? 1 : -1;
for (var j = 0; j < 3; j++) {
var len = this.itemInfo["items" + j].length;
direct *= -1;
for (var i = 0; i < len; i++) {
var plen = this.prizes.length;
if (direct > 0) {
this.itemInfo["items" + j][i].source = this.prizes[(plen - 1) - (i % plen)].icon;
}
else {
this.itemInfo["items" + j][i].source = this.prizes[(i % plen)].icon;
}
}
}
for (var i = 0; i < 3; i++) {
this.itemInfo["items" + i][1].source = this.getPrizeUrl(this.prizeId);
}
};
GameView.prototype.getPrizeUrl = function (pid) {
var purl = "";
for (var i = 0; i < 3; i++) {
if (this.prizes[i].prizeId == pid) {
return this.prizes[i].icon;
}
}
return purl;
};
GameView.prototype.pause = function () {
};
GameView.prototype.revive = function () {
};
GameView.prototype.resume = function () {
};
GameView.prototype.died = function () {
this.pause();
};
return GameView;
}(engine.Container));
//# sourceMappingURL=GameView.js.map
var GameWrapper = (function (_super) {
tslib.__extends(GameWrapper, _super);
function GameWrapper() {
var _this = _super.call(this) || this;
engine.globalEvent.addEventListener('rock-reset', _this.reset, _this);
engine.globalEvent.addEventListener('rock-start', _this.start, _this);
engine.globalEvent.addEventListener('rock-info', _this.rinfo, _this);
return _this;
}
GameWrapper.prototype.reset = function (event) {
injectProps(event.data);
this._gameView.visible = true;
this._gameView.reset();
};
GameWrapper.prototype.start = function (event) {
injectProps(event.data);
this._status = 1;
this._gameView.start();
};
GameWrapper.prototype.rinfo = function (event) {
injectProps(event.data);
console.log("event=", event);
console.log("event.data = ", event.data);
var gameView = this._gameView = new GameView();
this.addChild(gameView);
};
GameWrapper.prototype.pause = function () {
this._gameView.pause();
};
GameWrapper.prototype.resume = function () {
this._gameView.resume();
};
GameWrapper.prototype.revive = function () {
this._gameView.revive();
};
GameWrapper.prototype.clear = function () {
this._gameView.visible = false;
};
GameWrapper.prototype.onTap = function (event) {
};
return GameWrapper;
}(engine.Container));
//# sourceMappingURL=GameWrapper.js.map
function index (props) {
prepareProps();
injectProps(props);
var instance = new GameWrapper();
return instance;
}
//# sourceMappingURL=index.js.map
return index;
})));
//# sourceMappingURL=main.js.map
\ No newline at end of file
{"version":3,"file":"index.js","sources":["src/custom/rockji/src/props.ts","src/custom/rockji/src/game/GameView.ts","src/custom/rockji/src/game/GameWrapper.ts","src/custom/rockji/src/index.ts"],"sourcesContent":["/**\n * Created by rockyl on 2020-01-21.\n */\n\nexport let props: any = {};\n\nexport function prepareProps() {\n\tlet metaProps = getProps();\n\n\tengine.injectProp(props, metaProps);\n}\n\nexport function injectProps(p) {\n\tengine.injectProp(props, p);\n}\n","/**\n * Created by rockyl on 2018/8/16.\n */\n\nimport { props } from \"../props\";\nimport { playSound, createSvga } from \"./utils\";\nimport ObjectPool = engine.ObjectPool;\nimport { getTextureByName } from \"./utils\";\nimport { Goods } from \"./Goods\";\nimport { PoolName } from \"./object-pool-init\";\n\n\n\nexport default class GameView extends engine.Container {\n\n\tprivate _hasSetup;\n\n\t//玩家\n\tprivate player: engine.Container;\n\t//触摸层\n\t// private rectBg: engine.Rect;\n\tprivate rectBg: engine.Container;\n\t//npc层\n\tprivate NpcBg: engine.Container;\n\t//倒计时\n\tprivate countdown: number;\n\t//每列滚动时间间隔\n\tprivate timeSpace: number;\n\n\tprivate prizes;\n\tprivate bgImg:engine.Image;\n\tprivate bgImgUrl:string;\n\tprivate itemInfo:any;\n\tprivate prizeMaxH:number;\n\tprivate orgY:number;\n\n\tprivate prizeId:string;\n\n\tprivate container0:engine.Container;\n\tprivate container1:engine.Container;\n\tprivate container2:engine.Container;\n\n\tprivate mainContainer:engine.Container;\n\tprivate viewContainer:engine.Container;\n\n\tprivate configInfo:any;\n\n\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis.once(engine.Event.ADDED_TO_STAGE, this.setup, this);\n\t\t// this.configInfo = {\n\t\t// \tprizes:[\n\t\t// \t\t{type:0, url:'//yun.duiba.com.cn/aurora/assets/88d89ba9c3ddac732f2e017023a216be915655e4.png'},\n\t\t// \t\t{type:1, url:'//yun.duiba.com.cn/aurora/assets/1c0e0fcb192b2e0772bd555c3aae1c86621ccb09.png'},\n\t\t// \t\t{type:2, url:'//yun.duiba.com.cn/aurora/assets/bc23cd948cdd20467af9abc1f65e08e4f1e9bf30.png'}\n\t\t// \t],//奖品链接列表\n\t\t// \tbgImgUrl:'//yun.duiba.com.cn/aurora/assets/877058dcced99e42ddd2ccf19c2bce189fa45d5c.png',\n\t\t// \timgSize:{w:99,h:103},//奖品尺寸\n\t\t// \tspaceSize:{x:20, y:20},//奖品横向和纵向间隙\n\t\t// \tcOriginSize:{x:22, y:19},//遮罩左边定点位置\n\t\t// \tcSpaceSize:{x:23, y:0},//每列奖品的间隙\n\t\t// }\n\t\t\n\n\t\t// this.bgImgUrl = '//yun.duiba.com.cn/aurora/assets/877058dcced99e42ddd2ccf19c2bce189fa45d5c.png';\n\n\t\t// this.maskSize = {w:428, h:221};\n\t\t// this.imgSize = {w:99,h:103};\n\t\t// this.spaceSize = {x:20, y:20};\n\t\t// // this.originSize = {x:0, y:0}\n\t\t// this.cOriginSize = {x:22, y:19};//遮罩的初始坐标\n\t\t// this.cSpaceSize = {x:23, y:0};//奖品容器横向纵向的边距\n\n\t\t// this.prizes = [\n\t\t// \t{\n\t\t// \t\t\"icon\":\"//yun.duiba.com.cn/aurora/assets/88d89ba9c3ddac732f2e017023a216be915655e4.png\",\n\t\t// \t\t\"id\":\"o58df634f\",\n\t\t// \t\t\"index\":1,\n\t\t// \t\t\"name\":\"一等奖\",\n\t\t// \t\t\"prizeId\":\"sss_3\",\n\t\t// \t\t\"prizeType\":2,\n\t\t// \t\t\"refId\":\"49781\",\n\t\t// \t\t\"refType\":\"virtual\"\n\t\t// \t},\n\t\t// \t{\n\t\t// \t\t\"icon\":\"//yun.duiba.com.cn/aurora/assets/1c0e0fcb192b2e0772bd555c3aae1c86621ccb09.png\",\n\t\t// \t\t\"id\":\"o4a578392\",\n\t\t// \t\t\"index\":2,\n\t\t// \t\t\"name\":\"二等奖\",\n\t\t// \t\t\"prizeId\":\"sss_2\",\n\t\t// \t\t\"prizeType\":2,\n\t\t// \t\t\"refId\":\"49780\",\n\t\t// \t\t\"refType\":\"virtual\"\n\t\t// \t},\n\t\t// \t{\n\t\t// \t\t\"icon\":\"//yun.duiba.com.cn/aurora/assets/bc23cd948cdd20467af9abc1f65e08e4f1e9bf30.png\",\n\t\t// \t\t\"id\":\"o26efbbeb\",\n\t\t// \t\t\"index\":3,\n\t\t// \t\t\"name\":\"三等奖\",\n\t\t// \t\t\"prizeId\":\"sss_1\",\n\t\t// \t\t\"prizeType\":2,\n\t\t// \t\t\"refId\":\"49779\",\n\t\t// \t\t\"refType\":\"virtual\"\n\t\t// }];\n\t\tthis.prizeId = props.prizeId;\n\t\tthis.prizes = props.prizes;\n\t\tthis.countdown = 150;\n\t\tthis.timeSpace = 500;\n\t}\n\n\tprivate waterSvga\n\tprivate stoneSvga\n\tprivate boomSvga\n\tprivate playerSvga\n\n\tsetup() {\n\t\tif (this._hasSetup) {\n\t\t\treturn;\n\t\t}\n\t\t\n\t\tthis._hasSetup = true;\n\n\t\tthis.itemInfo = {};\n\n\t\t// this.bgImg = new engine.Image();\n\t\t// this.bgImg.source = this.bgImgUrl;\n\n\t\tthis.mainContainer = new engine.Container();\n\t\tthis.viewContainer = new engine.Container();\n\t\tthis.addChild(this.viewContainer);\n\n\t\tthis.viewContainer.width = props.viewWidth;\n\t\tthis.viewContainer.height = props.viewHeight;\n\n\t\t// this.bgImg = new engine.Sprite(getTextureByName('rock-背景'));\n\t\tthis.bgImg = new engine.Image();\n\t\tthis.bgImg.source = getAssetByName(\"rock-背景\").url;\n\t\tthis.viewContainer.addChild(this.bgImg);\n\n\t\tthis.container0 = new engine.Container();\n\t\tthis.container1 = new engine.Container();\n\t\tthis.container2 = new engine.Container();\n\n\t\tthis.mainContainer.addChild(this.container0);\n\t\tthis.mainContainer.addChild(this.container1);\n\t\tthis.mainContainer.addChild(this.container2);\n\n\t\tthis.viewContainer.addChild(this.mainContainer);\n\t\tthis.mainContainer.x = props.cOriginSizeX;\n\t\tthis.mainContainer.y = props.cOriginSizeY;\n\n\t\tlet mask = new engine.Rect();\n\t\tmask.x = props.cOriginSizeX;\n\t\tmask.y = props.cOriginSizeY;\n\t\tmask.fillColor = 0xffff00;\n\t\tmask.width = props.maskSizeW;\n\t\tmask.height = props.maskSizeH;\n\t\tthis.addChild(mask);\n\n\t\tthis.mainContainer.mask = mask;\n\n\t\t// this.container0.width = 140;\n\t\t// this.container0.height = 221;\n\n\t\t// this.container1.width = 140()\n\t\t// this.container1.height = 221;\n\n\t\t// this.container2.width = 140;\n\t\t// this.container2.height = 221;\n\n\t\tif(this.prizes.length > 3){\n\t\t\tthis.createItem(2);\n\t\t\tthis.prizeMaxH = this.prizes.length * (props.imgSizeW + props.spaceSizeY) + props.spaceSizeY;\n\t\t}else{\n\t\t\tthis.createItem(1);\n\t\t\tthis.prizeMaxH = 4 * (props.imgSizeW + props.spaceSizeY) + props.spaceSizeY;\n\t\t}\n\n\t\tthis.orgY = -(this.prizeMaxH - props.maskSizeH) + props.imgSizeH * 0.5;\n\t\tfor(let i = 0; i < 3; i++){\n\t\t\tthis['container' + i].x = i * (props.cSpaceSizeX * 2 + props.imgSizeW);\n\t\t\t// this['container' + i].y = this.orgY;\n\t\t\tthis['container' + i].y = this.orgY;\n\n\t\t}\n\n\t\t//mask 438 221\n\n\t}\n\n\t/**\n\t * type 1.小于4个奖品 2.4个及以上奖品\n\t */\n\tprivate createItem(type:number):void{\n\t\tlet len = 4;\n\t\tif(type == 1){\n\t\t\tlen = 4;\n\t\t}else if(type == 2){\n\t\t\tlen = this.prizes.length;\n\t\t}\n\n\t\tfor(let j = 0; j < 3; j++){\n\t\t\tthis.itemInfo[\"items\" + j] = [];\n\t\t\tfor(let i = 0; i < len; i++){\n\t\t\t\tlet url = this.prizes[i % this.prizes.length].icon;\n\t\t\t\tlet item = new engine.Image();\n\t\t\t\titem.source = url;\n\t\t\t\tthis.itemInfo[\"items\" + j][i] = item;\n\t\t\t\tthis[\"container\" + j].addChild(item);\n\n\t\t\t\titem.width = props.imgSizeW;\n\t\t\t\titem.height = props.imgSizeH;\n\t\t\t\titem.x = props.spaceSizeX;\n\t\t\t\titem.y = props.spaceSizeY + i * (props.imgSizeH + props.spaceSizeY);\n\n\t\t\t\tconsole.log('i=', i)\n\t\t\t\t\n\t\t\t}\n\t\t}\n\t}\n\n\n\t/**\n\t * 重置场景\n\t */\n\treset() {\n\t\tfor(let i = 0; i < 3; i++){\n\t\t\tthis[\"container\" + i].y = this.orgY;\n\t\t}\n\t}\n\n\t/**\n\t * 开始\n\t */\n\tstart() {\n\t\tthis.prizeId = props.prizeId;\n\t\tfor(let i = 0; i < 3; i++){\n\t\t\tengine.Tween.removeTweens(this[\"container\" + i]);\n\t\t\tsetTimeout(() => {\n\t\t\t\tengine.Tween.get(this[\"container\" + i],{loop:true}).to({y:0}, this.countdown).call(()=>{\n\t\t\t\t\tthis[\"container\" + i].y = this.orgY;\n\t\t\t\t});\n\t\t\t}, this.timeSpace * i);\n\t\t}\n\n\t\tsetTimeout(() => {\n\t\t\tfor(let i = 0; i < 3; i++){\n\t\t\t\t// this[\"container\" + i].y = 0;//this.orgY;\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tthis[\"container\" + i].y = this.orgY;\n\t\t\t\t\tengine.Tween.removeTweens(this[\"container\" + i]);\n\t\t\t\t\tengine.Tween.get(this[\"container\" + i]).to({y:-(props.imgSizeH * 0.5 + props.spaceSizeY)}, 1500);\n\t\t\t\t}, this.timeSpace * i);\n\t\t\t}\n\t\t\tthis.setPrizePos();\n\n\t\t\tsetTimeout(() => {\t\n\t\t\t\tengine.globalEvent.dispatchEvent('rock-gameover');\n\t\t\t}, this.timeSpace * 2 + 2000);\n\t\t}, 2500);\n\t\t\n\t}\n\n\tprivate setPrizePos():void{\n\t\tlet direct = Math.random() > 0.5 ? 1 : -1;\n\t\tfor(let j = 0; j < 3; j++){\n\t\t\tlet len = this.itemInfo[\"items\" + j].length;\n\t\t\tdirect *= -1;\n\t\t\tfor(let i = 0; i < len; i++){\n\t\t\t\tlet plen = this.prizes.length;\n\t\t\t\tif(direct > 0){\n\t\t\t\t\tthis.itemInfo[\"items\" + j][i].source = this.prizes[(plen - 1) - (i % plen)].icon;\n\t\t\t\t}else{\n\t\t\t\t\tthis.itemInfo[\"items\" + j][i].source = this.prizes[(i % plen)].icon;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfor(let i = 0; i < 3; i++){\n\t\t\t// this.prizeId = \"sss_3\";\n\t\t\tthis.itemInfo[\"items\" + i][1].source = this.getPrizeUrl(this.prizeId);\n\t\t}\n\n\t}\n\n\tprivate getPrizeUrl(pid:string):string{\n\t\tlet purl = \"\";\n\t\tfor(let i = 0; i < 3; i++){\n\t\t\tif(this.prizes[i].prizeId == pid){\n\t\t\t\treturn this.prizes[i].icon;\n\t\t\t}\n\t\t}\n\t\treturn purl;\n\t}\n\n\n\t/**\n\t * 暂停\n\t */\n\tpause() {\n\t\t\n\t}\n\n\t/**\n\t * 恢复\n\t */\n\trevive() {\n\t}\n\n\t/**\n\t * 重新开始\n\t */\n\tresume() {\n\t\t// this.reset()\n\t\t// this.start()\n\t}\n\n\t/**\n\t * 玩家死亡\n\t */\n\tprivate died() {\n\t\tthis.pause()\n\t}\n\n}\n","/**\n * Created by rockyl on 2020-01-09.\n */\n\nimport GameView from \"./GameView\";\nimport {injectProps} from \"../props\";\n\n\nexport class GameWrapper extends engine.Container {\n\tprivate _status;\n\tprivate _gameView: GameView;\n\n\tconstructor() {\n\t\tsuper();\n\t\tengine.globalEvent.addEventListener('rock-reset', this.reset, this);\n\t\tengine.globalEvent.addEventListener('rock-start', this.start, this);\n\t\tengine.globalEvent.addEventListener('rock-info', this.rinfo, this);\n\n\t\t// this.addEventListener(engine.MouseEvent.CLICK, this.onTap, this);\n\t\t// gameView.reset()\n\t\t// gameView.start()\n\t}\n\n\treset(event: engine.Event) {\t\t\n\t\tinjectProps(event.data);\n\t\tthis._gameView.visible = true;\n\t\tthis._gameView.reset();\n\t}\n\n\tstart(event: engine.Event) {\n\t\tinjectProps(event.data);\n\t\tthis._status = 1;\n\t\tthis._gameView.start();\n\t}\n\n\tprivate rinfo(event: engine.Event):void{\n\t\tinjectProps(event.data);\n\t\tconsole.log(\"event=\",event)\n\t\tconsole.log(\"event.data = \",event.data);\n\n\t\tlet gameView = this._gameView = new GameView();\n\t\tthis.addChild(gameView);\n\n\t}\n\n\tpause() {\n\t\tthis._gameView.pause();\n\t}\n\n\tresume() {\n\t\tthis._gameView.resume();\n\t}\n\n\trevive() {\n\t\tthis._gameView.revive();\n\t}\n\n\tclear() {\n\t\tthis._gameView.visible = false;\n\t}\n\n\tprivate onTap(event) {\n\t//\tthis._gameView.tap(event);\n\t}\n}\n","/**\n * Created by rockyl on 2019-11-20.\n */\n\nimport {GameWrapper} from \"./game/GameWrapper\";\nimport {injectProps, prepareProps} from \"./props\";\n\nexport default function (props) {\n\tprepareProps();\n\tinjectProps(props);\n\n\tlet instance = new GameWrapper();\n\treturn instance;\n}\n"],"names":["__extends"],"mappings":";;;;;;CAIO,IAAI,KAAK,GAAQ,EAAE,CAAC;AAE3B,UAAgB,YAAY;KAC3B,IAAI,SAAS,GAAG,QAAQ,EAAE,CAAC;KAE3B,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;CACrC,CAAC;AAED,UAAgB,WAAW,CAAC,CAAC;KAC5B,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;CAC7B,CAAC;;;CCDD;KAAsCA,kCAAgB;KAoCrD;SAAA,YACC,iBAAO,SA4DP;SA3DA,KAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,KAAI,CAAC,KAAK,EAAE,KAAI,CAAC,CAAC;SAuDzD,KAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;SAC7B,KAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;SAC3B,KAAI,CAAC,SAAS,GAAG,GAAG,CAAC;SACrB,KAAI,CAAC,SAAS,GAAG,GAAG,CAAC;;MACrB;KAOD,wBAAK,GAAL;SACC,IAAI,IAAI,CAAC,SAAS,EAAE;aACnB,OAAO;UACP;SAED,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SAEtB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;SAKnB,IAAI,CAAC,aAAa,GAAG,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;SAC5C,IAAI,CAAC,aAAa,GAAG,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;SAC5C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SAElC,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC;SAC3C,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC;SAG7C,IAAI,CAAC,KAAK,GAAG,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;SAChC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC;SAClD,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAExC,IAAI,CAAC,UAAU,GAAG,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;SACzC,IAAI,CAAC,UAAU,GAAG,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;SACzC,IAAI,CAAC,UAAU,GAAG,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;SAEzC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SAC7C,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SAC7C,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SAE7C,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SAChD,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC;SAC1C,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC;SAE1C,IAAI,IAAI,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;SAC7B,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC;SAC5B,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC;SAC5B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;SAC1B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC;SAC7B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC;SAC9B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SAEpB,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,IAAI,CAAC;SAW/B,IAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAC;aACzB,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;aACnB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC;UAC7F;cAAI;aACJ,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;aACnB,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC;UAC5E;SAED,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,QAAQ,GAAG,GAAG,CAAC;SACvE,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAC;aACzB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,WAAW,GAAG,CAAC,GAAI,KAAK,CAAC,QAAQ,CAAC,CAAC;aAExE,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;UAEpC;MAID;KAKO,6BAAU,GAAlB,UAAmB,IAAW;SAC7B,IAAI,GAAG,GAAG,CAAC,CAAC;SACZ,IAAG,IAAI,IAAI,CAAC,EAAC;aACZ,GAAG,GAAG,CAAC,CAAC;UACR;cAAK,IAAG,IAAI,IAAI,CAAC,EAAC;aAClB,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;UACzB;SAED,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAC;aACzB,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;aAChC,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAC;iBAC3B,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;iBACnD,IAAI,IAAI,GAAG,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;iBAC9B,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;iBAClB,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;iBACrC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;iBAErC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC;iBAC5B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC;iBAC7B,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC;iBAC1B,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,UAAU,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;iBAEpE,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;cAEpB;UACD;MACD;KAMD,wBAAK,GAAL;SACC,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAC;aACzB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;UACpC;MACD;KAKD,wBAAK,GAAL;SAAA,iBA2BC;SA1BA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;iCACrB,CAAC;aACR,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,OAAK,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC;aACjD,UAAU,CAAC;iBACV,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,KAAI,CAAC,WAAW,GAAG,CAAC,CAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,CAAC,EAAE,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,KAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC;qBAClF,KAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,KAAI,CAAC,IAAI,CAAC;kBACpC,CAAC,CAAC;cACH,EAAE,OAAK,SAAS,GAAG,CAAC,CAAC,CAAC;;;SANxB,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;qBAAjB,CAAC;UAOR;SAED,UAAU,CAAC;qCACF,CAAC;iBAER,UAAU,CAAC;qBACV,KAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,KAAI,CAAC,IAAI,CAAC;qBACpC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,KAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC;qBACjD,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,KAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAC,CAAC,EAAC,EAAE,KAAK,CAAC,QAAQ,GAAG,GAAG,GAAG,KAAK,CAAC,UAAU,CAAC,EAAC,EAAE,IAAI,CAAC,CAAC;kBACjG,EAAE,KAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;;aANxB,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;yBAAjB,CAAC;cAOR;aACD,KAAI,CAAC,WAAW,EAAE,CAAC;aAEnB,UAAU,CAAC;iBACV,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;cAClD,EAAE,KAAI,CAAC,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;UAC9B,EAAE,IAAI,CAAC,CAAC;MAET;KAEO,8BAAW,GAAnB;SACC,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;SAC1C,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAC;aACzB,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;aAC5C,MAAM,IAAI,CAAC,CAAC,CAAC;aACb,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAC;iBAC3B,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;iBAC9B,IAAG,MAAM,GAAG,CAAC,EAAC;qBACb,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;kBACjF;sBAAI;qBACJ,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC;kBACpE;cACD;UACD;SAED,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAC;aAEzB,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;UACtE;MAED;KAEO,8BAAW,GAAnB,UAAoB,GAAU;SAC7B,IAAI,IAAI,GAAG,EAAE,CAAC;SACd,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAC;aACzB,IAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,GAAG,EAAC;iBAChC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;cAC3B;UACD;SACD,OAAO,IAAI,CAAC;MACZ;KAMD,wBAAK,GAAL;MAEC;KAKD,yBAAM,GAAN;MACC;KAKD,yBAAM,GAAN;MAGC;KAKO,uBAAI,GAAZ;SACC,IAAI,CAAC,KAAK,EAAE,CAAA;MACZ;KAEF,eAAC;CAAD,CAAC,CAzTqC,MAAM,CAAC,SAAS,GAyTrD;;;CC9TD;KAAiCA,qCAAgB;KAIhD;SAAA,YACC,iBAAO,SAQP;SAPA,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,YAAY,EAAE,KAAI,CAAC,KAAK,EAAE,KAAI,CAAC,CAAC;SACpE,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,YAAY,EAAE,KAAI,CAAC,KAAK,EAAE,KAAI,CAAC,CAAC;SACpE,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,WAAW,EAAE,KAAI,CAAC,KAAK,EAAE,KAAI,CAAC,CAAC;;MAKnE;KAED,2BAAK,GAAL,UAAM,KAAmB;SACxB,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SACxB,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC;SAC9B,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;MACvB;KAED,2BAAK,GAAL,UAAM,KAAmB;SACxB,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SACxB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;SACjB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;MACvB;KAEO,2BAAK,GAAb,UAAc,KAAmB;SAChC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SACxB,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAC,KAAK,CAAC,CAAA;SAC3B,OAAO,CAAC,GAAG,CAAC,eAAe,EAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SAExC,IAAI,QAAQ,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,QAAQ,EAAE,CAAC;SAC/C,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;MAExB;KAED,2BAAK,GAAL;SACC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;MACvB;KAED,4BAAM,GAAN;SACC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;MACxB;KAED,4BAAM,GAAN;SACC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;MACxB;KAED,2BAAK,GAAL;SACC,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,KAAK,CAAC;MAC/B;KAEO,2BAAK,GAAb,UAAc,KAAK;MAElB;KACF,kBAAC;CAAD,CAAC,CAxDgC,MAAM,CAAC,SAAS,GAwDhD;;;iBCzDwB,KAAK;KAC7B,YAAY,EAAE,CAAC;KACf,WAAW,CAAC,KAAK,CAAC,CAAC;KAEnB,IAAI,QAAQ,GAAG,IAAI,WAAW,EAAE,CAAC;KACjC,OAAO,QAAQ,CAAC;CACjB,CAAC;;;;;;;;;"}
\ No newline at end of file
/**
* Created by rockyl on 2020-01-21.
*/
let customModuleProps = {
};
{
"name": "摇奖机",
"desc": "摇奖机",
"props": {
"imgSizeW": {
"alias": "奖品图片宽",
"type": "number",
"default": 99
},
"imgSizeH": {
"alias": "奖品图片高",
"type": "number",
"default": 99
},
"spaceSizeX": {
"alias": "奖品横向间隙",
"type": "number",
"default": 20
},
"spaceSizeY": {
"alias": "奖品纵向间隙",
"type": "number",
"default": 20
},
"cOriginSizeX": {
"alias": "遮罩左边顶点坐标",
"type": "number",
"default": 22
},
"cOriginSizeY": {
"alias": "遮罩左边顶点坐标",
"type": "number",
"default": 19
},
"cSpaceSizeX": {
"alias": "每列奖品容器的横向间隙",
"type": "number",
"default": 23
},
"maskSizeW": {
"alias": "遮罩宽",
"type": "number",
"default": 428
},
"maskSizeH": {
"alias": "遮罩高",
"type": "number",
"default": 221
},
"viewWidth": {
"alias": "模块宽",
"type": "number",
"default": 472
},
"viewHeight": {
"alias": "模块高",
"type": "number",
"default": 256
}
},
"assets": [
{
"name": "rock-背景",
"url": "//yun.duiba.com.cn/aurora/assets/877058dcced99e42ddd2ccf19c2bce189fa45d5c.png",
"uuid": "7baa74f5-e057-4fd3-846f-f58ff7a92c3d",
"ext": ".png"
}
],
"events": {
"in": {
"rock-info": {
"alias": "初始化进入页面调用",
"data": [{
"icon":"//yun.duiba.com.cn/aurora/assets/88d89ba9c3ddac732f2e017023a216be915655e4.png",
"id":"o58df634f",
"index":1,
"name":"一等奖",
"prizeId":"sss_3",
"prizeType":2,
"refId":"49781",
"refType":"virtual"
},
{
"icon":"//yun.duiba.com.cn/aurora/assets/1c0e0fcb192b2e0772bd555c3aae1c86621ccb09.png",
"id":"o4a578392",
"index":2,
"name":"二等奖",
"prizeId":"sss_2",
"prizeType":2,
"refId":"49780",
"refType":"virtual"
},
{
"icon":"//yun.duiba.com.cn/aurora/assets/bc23cd948cdd20467af9abc1f65e08e4f1e9bf30.png",
"id":"o26efbbeb",
"index":3,
"name":"三等奖",
"prizeId":"sss_1",
"prizeType":2,
"refId":"49779",
"refType":"virtual"
}]
},
"rock-start": {
"alias": "开始摇奖,透传中奖id",
"data":{
"prizeId":"sss_3"
}
},
"rock-reset": {
"alias": "关闭中奖弹窗时调用"
}
},
"out": {
"rock-gameover": {
"alias": "摇奖机停止是派发"
}
}
}
}
\ No newline at end of file
/**
* Created by rockyl on 2018/8/16.
*/
import { props } from "../props";
import { playSound, createSvga } from "./utils";
import ObjectPool = engine.ObjectPool;
import { getTextureByName } from "./utils";
import { Goods } from "./Goods";
import { PoolName } from "./object-pool-init";
export default class GameView extends engine.Container {
private _hasSetup;
//玩家
private player: engine.Container;
//触摸层
// private rectBg: engine.Rect;
private rectBg: engine.Container;
//npc层
private NpcBg: engine.Container;
//倒计时
private countdown: number;
//每列滚动时间间隔
private timeSpace: number;
private prizes;
private bgImg:engine.Image;
private bgImgUrl:string;
private itemInfo:any;
private prizeMaxH:number;
private orgY:number;
private prizeId:string;
private container0:engine.Container;
private container1:engine.Container;
private container2:engine.Container;
private mainContainer:engine.Container;
private viewContainer:engine.Container;
private configInfo:any;
constructor() {
super();
this.once(engine.Event.ADDED_TO_STAGE, this.setup, this);
// this.configInfo = {
// prizes:[
// {type:0, url:'//yun.duiba.com.cn/aurora/assets/88d89ba9c3ddac732f2e017023a216be915655e4.png'},
// {type:1, url:'//yun.duiba.com.cn/aurora/assets/1c0e0fcb192b2e0772bd555c3aae1c86621ccb09.png'},
// {type:2, url:'//yun.duiba.com.cn/aurora/assets/bc23cd948cdd20467af9abc1f65e08e4f1e9bf30.png'}
// ],//奖品链接列表
// bgImgUrl:'//yun.duiba.com.cn/aurora/assets/877058dcced99e42ddd2ccf19c2bce189fa45d5c.png',
// imgSize:{w:99,h:103},//奖品尺寸
// spaceSize:{x:20, y:20},//奖品横向和纵向间隙
// cOriginSize:{x:22, y:19},//遮罩左边定点位置
// cSpaceSize:{x:23, y:0},//每列奖品的间隙
// }
// this.bgImgUrl = '//yun.duiba.com.cn/aurora/assets/877058dcced99e42ddd2ccf19c2bce189fa45d5c.png';
// this.maskSize = {w:428, h:221};
// this.imgSize = {w:99,h:103};
// this.spaceSize = {x:20, y:20};
// // this.originSize = {x:0, y:0}
// this.cOriginSize = {x:22, y:19};//遮罩的初始坐标
// this.cSpaceSize = {x:23, y:0};//奖品容器横向纵向的边距
// this.prizes = [
// {
// "icon":"//yun.duiba.com.cn/aurora/assets/88d89ba9c3ddac732f2e017023a216be915655e4.png",
// "id":"o58df634f",
// "index":1,
// "name":"一等奖",
// "prizeId":"sss_3",
// "prizeType":2,
// "refId":"49781",
// "refType":"virtual"
// },
// {
// "icon":"//yun.duiba.com.cn/aurora/assets/1c0e0fcb192b2e0772bd555c3aae1c86621ccb09.png",
// "id":"o4a578392",
// "index":2,
// "name":"二等奖",
// "prizeId":"sss_2",
// "prizeType":2,
// "refId":"49780",
// "refType":"virtual"
// },
// {
// "icon":"//yun.duiba.com.cn/aurora/assets/bc23cd948cdd20467af9abc1f65e08e4f1e9bf30.png",
// "id":"o26efbbeb",
// "index":3,
// "name":"三等奖",
// "prizeId":"sss_1",
// "prizeType":2,
// "refId":"49779",
// "refType":"virtual"
// }];
this.prizeId = props.prizeId;
this.prizes = props.prizes;
this.countdown = 150;
this.timeSpace = 500;
}
private waterSvga
private stoneSvga
private boomSvga
private playerSvga
setup() {
if (this._hasSetup) {
return;
}
this._hasSetup = true;
this.itemInfo = {};
// this.bgImg = new engine.Image();
// this.bgImg.source = this.bgImgUrl;
this.mainContainer = new engine.Container();
this.viewContainer = new engine.Container();
this.addChild(this.viewContainer);
this.viewContainer.width = props.viewWidth;
this.viewContainer.height = props.viewHeight;
// this.bgImg = new engine.Sprite(getTextureByName('rock-背景'));
this.bgImg = new engine.Image();
this.bgImg.source = getAssetByName("rock-背景").url;
this.viewContainer.addChild(this.bgImg);
this.container0 = new engine.Container();
this.container1 = new engine.Container();
this.container2 = new engine.Container();
this.mainContainer.addChild(this.container0);
this.mainContainer.addChild(this.container1);
this.mainContainer.addChild(this.container2);
this.viewContainer.addChild(this.mainContainer);
this.mainContainer.x = props.cOriginSizeX;
this.mainContainer.y = props.cOriginSizeY;
let mask = new engine.Rect();
mask.x = props.cOriginSizeX;
mask.y = props.cOriginSizeY;
mask.fillColor = 0xffff00;
mask.width = props.maskSizeW;
mask.height = props.maskSizeH;
this.addChild(mask);
this.mainContainer.mask = mask;
// this.container0.width = 140;
// this.container0.height = 221;
// this.container1.width = 140()
// this.container1.height = 221;
// this.container2.width = 140;
// this.container2.height = 221;
if(this.prizes.length > 3){
this.createItem(2);
this.prizeMaxH = this.prizes.length * (props.imgSizeW + props.spaceSizeY) + props.spaceSizeY;
}else{
this.createItem(1);
this.prizeMaxH = 4 * (props.imgSizeW + props.spaceSizeY) + props.spaceSizeY;
}
this.orgY = -(this.prizeMaxH - props.maskSizeH) + props.imgSizeH * 0.5;
for(let i = 0; i < 3; i++){
this['container' + i].x = i * (props.cSpaceSizeX * 2 + props.imgSizeW);
// this['container' + i].y = this.orgY;
this['container' + i].y = this.orgY;
}
//mask 438 221
}
/**
* type 1.小于4个奖品 2.4个及以上奖品
*/
private createItem(type:number):void{
let len = 4;
if(type == 1){
len = 4;
}else if(type == 2){
len = this.prizes.length;
}
for(let j = 0; j < 3; j++){
this.itemInfo["items" + j] = [];
for(let i = 0; i < len; i++){
let url = this.prizes[i % this.prizes.length].icon;
let item = new engine.Image();
item.source = url;
this.itemInfo["items" + j][i] = item;
this["container" + j].addChild(item);
item.width = props.imgSizeW;
item.height = props.imgSizeH;
item.x = props.spaceSizeX;
item.y = props.spaceSizeY + i * (props.imgSizeH + props.spaceSizeY);
console.log('i=', i)
}
}
}
/**
* 重置场景
*/
reset() {
for(let i = 0; i < 3; i++){
this["container" + i].y = this.orgY;
}
}
/**
* 开始
*/
start() {
this.prizeId = props.prizeId;
for(let i = 0; i < 3; i++){
engine.Tween.removeTweens(this["container" + i]);
setTimeout(() => {
engine.Tween.get(this["container" + i],{loop:true}).to({y:0}, this.countdown).call(()=>{
this["container" + i].y = this.orgY;
});
}, this.timeSpace * i);
}
setTimeout(() => {
for(let i = 0; i < 3; i++){
// this["container" + i].y = 0;//this.orgY;
setTimeout(() => {
this["container" + i].y = this.orgY;
engine.Tween.removeTweens(this["container" + i]);
engine.Tween.get(this["container" + i]).to({y:-(props.imgSizeH * 0.5 + props.spaceSizeY)}, 1500);
}, this.timeSpace * i);
}
this.setPrizePos();
setTimeout(() => {
engine.globalEvent.dispatchEvent('rock-gameover');
}, this.timeSpace * 2 + 2000);
}, 2500);
}
private setPrizePos():void{
let direct = Math.random() > 0.5 ? 1 : -1;
for(let j = 0; j < 3; j++){
let len = this.itemInfo["items" + j].length;
direct *= -1;
for(let i = 0; i < len; i++){
let plen = this.prizes.length;
if(direct > 0){
this.itemInfo["items" + j][i].source = this.prizes[(plen - 1) - (i % plen)].icon;
}else{
this.itemInfo["items" + j][i].source = this.prizes[(i % plen)].icon;
}
}
}
for(let i = 0; i < 3; i++){
// this.prizeId = "sss_3";
this.itemInfo["items" + i][1].source = this.getPrizeUrl(this.prizeId);
}
}
private getPrizeUrl(pid:string):string{
let purl = "";
for(let i = 0; i < 3; i++){
if(this.prizes[i].prizeId == pid){
return this.prizes[i].icon;
}
}
return purl;
}
/**
* 暂停
*/
pause() {
}
/**
* 恢复
*/
revive() {
}
/**
* 重新开始
*/
resume() {
// this.reset()
// this.start()
}
/**
* 玩家死亡
*/
private died() {
this.pause()
}
}
/**
* Created by rockyl on 2020-01-09.
*/
import GameView from "./GameView";
import {injectProps} from "../props";
export class GameWrapper extends engine.Container {
private _status;
private _gameView: GameView;
constructor() {
super();
engine.globalEvent.addEventListener('rock-reset', this.reset, this);
engine.globalEvent.addEventListener('rock-start', this.start, this);
engine.globalEvent.addEventListener('rock-info', this.rinfo, this);
// this.addEventListener(engine.MouseEvent.CLICK, this.onTap, this);
// gameView.reset()
// gameView.start()
}
reset(event: engine.Event) {
injectProps(event.data);
this._gameView.visible = true;
this._gameView.reset();
}
start(event: engine.Event) {
injectProps(event.data);
this._status = 1;
this._gameView.start();
}
private rinfo(event: engine.Event):void{
injectProps(event.data);
console.log("event=",event)
console.log("event.data = ",event.data);
let gameView = this._gameView = new GameView();
this.addChild(gameView);
}
pause() {
this._gameView.pause();
}
resume() {
this._gameView.resume();
}
revive() {
this._gameView.revive();
}
clear() {
this._gameView.visible = false;
}
private onTap(event) {
// this._gameView.tap(event);
}
}
/**
* Created by rockyl on 2020-02-02.
*
* 掉落物品
*/
import {getTextureByName} from "./utils";
import {props} from "../props";
export class Goods extends engine.Container {
private _body:engine.Rect
private _toY;
constructor() {
super();
let body
body = this._body =new engine.Rect()
// let randomNum = Math.floor(Math.random() * 3)
// console.log('雨滴' + randomNum);
let rain = new engine.Sprite(getTextureByName('雨滴0'));
let rain1 = new engine.Sprite(getTextureByName('雨滴1'));
let rain2 = new engine.Sprite(getTextureByName('雨滴2'));
rain["npcType"]="rain0"
rain1["npcType"]="rain1"
rain2["npcType"]="rain2"
let stone = new engine.Sprite(getTextureByName('石块'));
stone["npcType"]="stone"
let boom = new engine.Sprite(getTextureByName('炸弹'));
boom["npcType"]="boom"
rain.visible=false;
rain1.visible=false;
rain2.visible=false;
stone.visible=false;
boom.visible=false;
body.addChild(rain)
body.addChild(rain1)
body.addChild(rain2)
body.addChild(stone)
body.addChild(boom)
this.addChild(body);
body.width=.0001;
body.height=.0001;
body.mouseEnabled=false;
}
getRandomNumberByRange(start, end) {
return Math.floor(Math.random() * (end - start) + start)
}
reset() {
this.visible = true;
this.rotation = 0;
this.anchorOffsetY = 0;
this.y = 0;
this.x = (750-120)*Math.random()+30;
this.rotation = 0;
let random=Math.random()
if(typeof (props.goodsProbability) == 'string'){
props.goodsProbability=props.goodsProbability.split(',').map((i: string) => +i)
console.log(props.goodsProbability);
}
if(random<props.goodsProbability[0]){
let randomNum = Math.floor(Math.random() * 3)
this.showNpc("rain" + randomNum)
}else if(random>=props.goodsProbability[0]&&random<=(props.goodsProbability[0]+props.goodsProbability[1])){
this.showNpc("stone")
}else if(random>(props.goodsProbability[0]+props.goodsProbability[1])){
this.showNpc("boom")
}
}
showNpc(type){
for(let i=0;i<this._body.children.length;i++){
this._body.children[i].visible=false;
this._body.children[i].mouseEnabled=false;
}
for(let i=0;i<this._body.children.length;i++){
if(this._body.children[i]["npcType"]==type){
this["npcType"]=type
this._body.children[i].visible=true;
this._body.children[i].mouseEnabled=false;
}
}
}
set anchorOffsetY(v) {
this._body.y = v;
}
}
/**
* Created by rockyl on 2020-02-03.
*/
import {Goods} from "./Goods";
import ObjectPool = engine.ObjectPool;
export const PoolName: string = 'goods';
ObjectPool.registerPool(PoolName, function () {
return new Goods();
}, function (item: Goods, data) {
item.reset();
});
/**
* Created by rockyl on 2020-01-21.
*/
export function getTexture(uuid) {
return engine.Texture.from(getAssetByUUID(uuid).uuid);
}
export function getTextureByName(name) {
return engine.Texture.from(getAssetByName(name).uuid);
}
export function playSound(name) {
engine.playSound(getAssetByName(name).uuid, {keep: true});
}
export function createSvga(name, anchorName?) {
let inst = new svga.Svga();
inst.source = 'asset://' + getAssetByName(name).uuid;
return inst;
}
\ 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);
}
......@@ -313,8 +313,8 @@ rollup-plugin-commonjs@^10.1.0:
rollup-plugin-node-resolve@^5.2.0:
version "5.2.0"
resolved "https://registry.npm.taobao.org/rollup-plugin-node-resolve/download/rollup-plugin-node-resolve-5.2.0.tgz#730f93d10ed202473b1fb54a5997a7db8c6d8523"
integrity sha1-cw+T0Q7SAkc7H7VKWZen24xthSM=
resolved "https://registry.yarnpkg.com/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-5.2.0.tgz#730f93d10ed202473b1fb54a5997a7db8c6d8523"
integrity sha512-jUlyaDXts7TW2CqQ4GaO5VJ4PwwaV8VUGA7+km3n6k6xtOEacf61u0VXwN80phY/evMcaS+9eIeJ9MOyDxt5Zw==
dependencies:
"@types/resolve" "0.0.8"
builtin-modules "^3.1.0"
......
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