Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Z
zeroing-libs
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
劳工
zeroing-libs
Commits
f0f9841e
Commit
f0f9841e
authored
Aug 03, 2020
by
zjz1994
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
代码暂存
parent
38829cf5
Changes
9
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
325 additions
and
190 deletions
+325
-190
pintu.json
dist/customs/pintu.json
+7
-1
app.js
src/custom/pintu/debug/app.js
+1
-1
main.js
src/custom/pintu/debug/main.js
+110
-89
main.js.map
src/custom/pintu/debug/main.js.map
+1
-1
meta.json
src/custom/pintu/meta.json
+6
-0
GameView.ts
src/custom/pintu/src/game/GameView.ts
+52
-16
Tool.ts
src/custom/pintu/src/game/Tool.ts
+29
-0
qietu.ts
src/custom/pintu/src/game/qietu.ts
+100
-73
utils.ts
src/custom/pintu/src/game/utils.ts
+19
-9
No files found.
dist/customs/pintu.json
View file @
f0f9841e
...
...
@@ -61,6 +61,12 @@
"url"
:
"//yun.duiba.com.cn/aurora/assets/1c384d986504d5aabfffeb5125dc67e73ce1b539.png"
,
"uuid"
:
"kuang4"
,
"ext"
:
".png"
},
{
"name"
:
"testimg"
,
"url"
:
"//yun.duiba.com.cn/aurora/assets/2628186c60c3b80013ae3178ff21a73ffbe71d43.jpg"
,
"uuid"
:
"morentu"
,
"ext"
:
".jpg"
}
],
"events"
:
{
...
...
@@ -128,5 +134,5 @@
}
},
"id"
:
"pintu"
,
"code"
:
"(function (global, factory) {
\n\t
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('tslib')) :
\n\t
typeof define === 'function' && define.amd ? define(['tslib'], factory) :
\n\t
(global = global || self, global.pintu = factory(global.tslib));
\n
}(this, (function (tslib) { 'use strict';
\n\n\t
var props = {};
\r\n\t
function prepareProps() {
\r\n\t
var metaProps = getProps();
\r\n\t
engine.injectProp(props, metaProps);
\r\n\t
}
\r\n\t
function injectProps(p) {
\r\n\t
engine.injectProp(props, p);
\r\n\t
}
\r\n\t
//# sourceMappingURL=props.js.map
\n\n\t
function getTexture(uuid) {
\r\n\t
return engine.Texture.from(getAssetByUUID(uuid).uuid);
\r\n\t
}
\r\n\t
function getTextureByName(name) {
\r\n\t
return getTexture(engine.getAssetByName(name).uuid);
\r\n\t
}
\r\n\t
function loadImageByUrl(url) {
\r\n\t
return tslib.__awaiter(this, void 0, void 0, function () {
\r\n\t
return tslib.__generator(this, function (_a) {
\r\n\t
console.log('loadImageByUrl----------:', url);
\r\n\t
return [2, new Promise(function (resolve) {
\r\n\t
if (engine.TextureCache[url]) {
\r\n\t
resolve(engine.TextureCache[url]);
\r\n\t
}
\r\n\t
else {
\r\n\t
var t = engine.Texture.from(url);
\r\n\t
t.addEventListener(
\"
loaded
\"
, function () { resolve(t); });
\r\n\t
}
\r\n\t
})];
\r\n\t
});
\r\n\t
});
\r\n\t
}
\r\n\t
//# sourceMappingURL=utils.js.map
\n\n\t
var qietu = (function (url, type1, rows, cols, parent) { return tslib.__awaiter(void 0, void 0, void 0, function () {
\r\n\t
var t, setimgwid, mwid1, mhei1, mwid, mhei, picarr, picnames, chax, chay, startlix, addlix, startliy, addliy, twid1, thei1, r, startx, c, starty, nsprite, isprite, nsp, ispritename, e_1;
\r\n\t
return tslib.__generator(this, function (_a) {
\r\n\t
switch (_a.label) {
\r\n\t
case 0:
\r\n\t
_a.trys.push([0, 6, , 7]);
\r\n\t
t = void 0;
\r\n\t
if (!(type1 == 1)) return [3, 1];
\r\n\t
t = url;
\r\n\t
return [3, 3];
\r\n\t
case 1: return [4, loadImageByUrl(url)];
\r\n\t
case 2:
\r\n\t
t = (_a.sent());
\r\n\t
_a.label = 3;
\r\n\t
case 3:
\r\n\t
setimgwid = 612;
\r\n\t
mwid1 = setimgwid / rows;
\r\n\t
mhei1 = setimgwid / cols;
\r\n\t
mwid = t.width;
\r\n\t
mhei = t.height;
\r\n\t
if (!(mwid < 10 || mhei < 10)) return [3, 5];
\r\n\t
return [4, new Promise(function (res) {
\r\n\t
setTimeout(function () {
\r\n\t
res();
\r\n\t
}, 200);
\r\n\t
})];
\r\n\t
case 4:
\r\n\t
_a.sent();
\r\n\t
return [2, qietu(t, 1, rows, cols)];
\r\n\t
case 5:
\r\n\t
if (mwid > mhei) {
\r\n\t
if (mhei < setimgwid) {
\r\n\t
mwid = mwid * setimgwid / mhei;
\r\n\t
mhei = setimgwid;
\r\n\t
}
\r\n\t
}
\r\n\t
else {
\r\n\t
if (mwid < setimgwid) {
\r\n\t
mhei = mhei * setimgwid / mwid;
\r\n\t
mwid = setimgwid;
\r\n\t
}
\r\n\t
}
\r\n\t
picarr = {};
\r\n\t
picnames = [];
\r\n\t
chax = void 0;
\r\n\t
chay = void 0;
\r\n\t
startlix = void 0;
\r\n\t
addlix = void 0;
\r\n\t
startliy = void 0;
\r\n\t
addliy = void 0;
\r\n\t
twid1 = void 0;
\r\n\t
thei1 = void 0;
\r\n\t
if (mwid > mhei) {
\r\n\t
chax = (mwid - mhei) / 2;
\r\n\t
startlix = chax / mwid;
\r\n\t
addlix = (mhei / cols) / mwid;
\r\n\t
startliy = 0;
\r\n\t
addliy = 1 / rows;
\r\n\t
twid1 = mwid * setimgwid / mhei;
\r\n\t
thei1 = setimgwid;
\r\n\t
}
\r\n\t
else {
\r\n\t
startlix = 0;
\r\n\t
addlix = 1 / cols;
\r\n\t
chay = (mhei - mwid) / 2;
\r\n\t
startliy = chay / mhei;
\r\n\t
addliy = (mwid / rows) / mhei;
\r\n\t
thei1 = mhei * setimgwid / mwid;
\r\n\t
twid1 = setimgwid;
\r\n\t
}
\r\n\t
for (r = 0; r < rows; r++) {
\r\n\t
startx = startlix + addlix * r;
\r\n\t
for (c = 0; c < cols; c++) {
\r\n\t
starty = startliy + addliy * c;
\r\n\t
nsprite = new engine.Container();
\r\n\t
isprite = new engine.ScrollView();
\r\n\t
nsp = new engine.Sprite(t);
\r\n\t
isprite.addChild(nsp);
\r\n\t
nsp.width = twid1;
\r\n\t
nsp.height = thei1;
\r\n\t
isprite.mouseEnabled = false;
\r\n\t
isprite.mouseChildren = false;
\r\n\t
nsp.x = -starty * twid1;
\r\n\t
nsp.y = -startx * thei1;
\r\n\t
isprite.width = mwid1;
\r\n\t
isprite.height = mhei1;
\r\n\t
nsprite.addChild(isprite);
\r\n\t
nsprite.width = mwid1;
\r\n\t
nsprite.height = mhei1;
\r\n\t
ispritename =
\"
pic_
\"
+ c +
\"
_
\"
+ r;
\r\n\t
nsprite.name = ispritename;
\r\n\t
picarr[ispritename] = nsprite;
\r\n\t
picnames.push(ispritename);
\r\n\t
}
\r\n\t
}
\r\n\t
return [2, {
\r\n\t
res: true,
\r\n\t
picarr: picarr,
\r\n\t
mwid: mwid1,
\r\n\t
mhei: mhei1,
\r\n\t
picnames: picnames
\r\n\t
}];
\r\n\t
case 6:
\r\n\t
e_1 = _a.sent();
\r\n\t
return [2, {
\r\n\t
res: false
\r\n\t
}];
\r\n\t
case 7: return [2];
\r\n\t
}
\r\n\t
});
\r\n\t
}); });
\r\n\t
//# sourceMappingURL=qietu.js.map
\n\n\t
var GameView = (function (_super) {
\r\n\t
tslib.__extends(GameView, _super);
\r\n\t
function GameView() {
\r\n\t
var _this = _super.call(this) || this;
\r\n\t
_this.ingame = false;
\r\n\t
_this.selectImgArr = [];
\r\n\t
_this.sucposData = {};
\r\n\t
_this.gameUrls = [];
\r\n\t
_this.gameTimes = [];
\r\n\t
_this.onegamePics = [];
\r\n\t
_this.movesteps = 0;
\r\n\t
_this.startime = 0;
\r\n\t
_this.once(engine.Event.ADDED_TO_STAGE, _this.initScene, _this);
\r\n\t
return _this;
\r\n\t
}
\r\n\t
GameView.prototype.initScene = function () {
\r\n\t
this.lineShape = new engine.Shape();
\r\n\t
this.selectimg3 = new engine.Image(getTextureByName(
\"
框3
\"
));
\r\n\t
this.selectimg4 = new engine.Image(getTextureByName(
\"
框4
\"
));
\r\n\t
this.selectimg3.mouseEnabled = false;
\r\n\t
this.selectimg4.mouseEnabled = false;
\r\n\t
this.dicont = new engine.Container();
\r\n\t
this.linecont = new engine.Container();
\r\n\t
this.blockcont = new engine.Container();
\r\n\t
this.addChild(this.dicont);
\r\n\t
this.addChild(this.linecont);
\r\n\t
this.addChild(this.blockcont);
\r\n\t
this.linecont.addChild(this.lineShape);
\r\n\t
console.log(
\"
拼图初始化完毕--------------
\"
);
\r\n\t
engine.globalEvent.dispatchEvent(
\"
pictures-time-initcomp
\"
, {});
\r\n\t
this.removeEventListener(engine.Event.ADDED_TO_STAGE, this.initScene, this);
\r\n\t
};
\r\n\t
GameView.prototype.initgame = function () {
\r\n\t
return tslib.__awaiter(this, void 0, void 0, function () {
\r\n\t
var l, lurl, lt;
\r\n\t
return tslib.__generator(this, function (_a) {
\r\n\t
switch (_a.label) {
\r\n\t
case 0:
\r\n\t
console.log(
\"
initgame---------
\"
);
\r\n\t
this.gameUrls = props.gameUrls;
\r\n\t
this.gameTimes = props.gameTimes;
\r\n\t
this.onegamePics = new Array();
\r\n\t
l = 0;
\r\n\t
_a.label = 1;
\r\n\t
case 1:
\r\n\t
if (!(l < this.gameUrls.length)) return [3, 4];
\r\n\t
lurl = this.gameUrls[l];
\r\n\t
return [4, loadImageByUrl(lurl)];
\r\n\t
case 2:
\r\n\t
lt = _a.sent();
\r\n\t
this.onegamePics.push(lt);
\r\n\t
if (this.onegamePics.length == 1) {
\r\n\t
this.startfirst();
\r\n\t
}
\r\n\t
_a.label = 3;
\r\n\t
case 3:
\r\n\t
l++;
\r\n\t
return [3, 1];
\r\n\t
case 4:
\r\n\t
this.removeSelectImg();
\r\n\t
return [2];
\r\n\t
}
\r\n\t
});
\r\n\t
});
\r\n\t
};
\r\n\t
GameView.prototype.removeSelectImg = function () {
\r\n\t
if (this.selectimg3) {
\r\n\t
this.blockcont.removeChild(this.selectimg3);
\r\n\t
}
\r\n\t
if (this.selectimg4) {
\r\n\t
this.blockcont.removeChild(this.selectimg4);
\r\n\t
}
\r\n\t
};
\r\n\t
GameView.prototype.startfirst = function () {
\r\n\t
return tslib.__awaiter(this, void 0, void 0, function () {
\r\n\t
var actidx, tex, type1, result, res, picarr, mwid, mhei, picnames, gap, r, c, ipicx, ipicy, npicname, ipic, rl, cl;
\r\n\t
return tslib.__generator(this, function (_a) {
\r\n\t
switch (_a.label) {
\r\n\t
case 0:
\r\n\t
this.dicont.removeChildren();
\r\n\t
this.movesteps = 0;
\r\n\t
this.startime = Date.now();
\r\n\t
this.removeSelectImg();
\r\n\t
actidx = 0;
\r\n\t
this.gametime = this.gameTimes[actidx];
\r\n\t
this.showtime = this.gameTimes[actidx];
\r\n\t
this.passtime = 0;
\r\n\t
engine.globalEvent.dispatchEvent(
\"
pictures-time-update
\"
, {
\r\n\t
time: this.showtime,
\r\n\t
});
\r\n\t
engine.globalEvent.dispatchEvent(
\"
pictures-time-passtime
\"
, {
\r\n\t
passtime: this.passtime
\r\n\t
});
\r\n\t
console.log(
\"
start-----------------
\"
, actidx);
\r\n\t
this.rows = 3;
\r\n\t
this.cols = 3;
\r\n\t
this.nselectimg = null;
\r\n\t
if (this.rows == 3) {
\r\n\t
this.nselectimg = this.selectimg3;
\r\n\t
}
\r\n\t
if (this.rows == 4) {
\r\n\t
this.nselectimg = this.selectimg4;
\r\n\t
}
\r\n\t
this.selectImgArr = new Array();
\r\n\t
this.sucposData = {};
\r\n\t
tex = this.onegamePics[actidx];
\r\n\t
type1 = 1;
\r\n\t
if (!tex) {
\r\n\t
tex = this.gameUrls[actidx];
\r\n\t
type1 = 2;
\r\n\t
}
\r\n\t
return [4, qietu(tex, type1, this.rows, this.cols, this.dicont)];
\r\n\t
case 1:
\r\n\t
result = _a.sent();
\r\n\t
res = result.res;
\r\n\t
if (res) {
\r\n\t
picarr = result.picarr;
\r\n\t
mwid = result.mwid;
\r\n\t
mhei = result.mhei;
\r\n\t
picnames = result.picnames;
\r\n\t
this.mwid = mwid;
\r\n\t
this.mhei = mhei;
\r\n\t
this.picarr = picarr;
\r\n\t
this.picnames = picnames;
\r\n\t
gap = 2;
\r\n\t
for (r = 0; r < this.rows; r++) {
\r\n\t
for (c = 0; c < this.cols; c++) {
\r\n\t
ipicx = mwid * c + gap;
\r\n\t
ipicy = mhei * r + gap;
\r\n\t
npicname =
\"
pic_
\"
+ c +
\"
_
\"
+ r;
\r\n\t
ipic = picarr[npicname];
\r\n\t
this.dicont.addChild(ipic);
\r\n\t
ipic.x = ipicx;
\r\n\t
ipic.y = ipicy;
\r\n\t
}
\r\n\t
}
\r\n\t
this.lineShape.clear();
\r\n\t
this.lineShape.beginStroke(0x0069df, 4, engine.LINE_CAP.BUTT, engine.LINE_JOIN.BEVEL, 100);
\r\n\t
this.lineShape.moveTo(0 + gap, 0 + gap);
\r\n\t
this.lineShape.lineTo(mhei * this.cols + gap, 0 + gap);
\r\n\t
this.lineShape.lineTo(mhei * this.cols + gap, mwid * this.rows + gap);
\r\n\t
this.lineShape.lineTo(0 + gap, mwid * this.rows + gap);
\r\n\t
this.lineShape.lineTo(0 + gap, 0 + gap);
\r\n\t
for (rl = 1; rl < this.rows; rl++) {
\r\n\t
this.lineShape.moveTo(0 + gap, rl * mhei + gap);
\r\n\t
this.lineShape.lineTo(mwid * this.cols + gap, rl * mhei + gap);
\r\n\t
}
\r\n\t
for (cl = 1; cl < this.cols; cl++) {
\r\n\t
this.lineShape.moveTo(cl * mwid + gap, 0 + gap);
\r\n\t
this.lineShape.lineTo(cl * mwid + gap, this.rows * mhei + gap);
\r\n\t
}
\r\n\t
this.lineShape.endStroke();
\r\n\t
engine.globalEvent.dispatchEvent(
\"
pictures-load-complete
\"
);
\r\n\t
this.ticker && clearInterval(this.ticker);
\r\n\t
this.ticker = setInterval(this.update, 10);
\r\n\t
}
\r\n\t
else {
\r\n\t
console.error(
\"
图片处理失败
\"
);
\r\n\t
}
\r\n\t
return [2];
\r\n\t
}
\r\n\t
});
\r\n\t
});
\r\n\t
};
\r\n\t
GameView.prototype.start = function () {
\r\n\t
return tslib.__awaiter(this, void 0, void 0, function () {
\r\n\t
var actidx, tex, type1, result, res, picarr, mwid, mhei, picnames, gap, r, c, ipicx, ipicy, npicname, ipic, rl, cl;
\r\n\t
return tslib.__generator(this, function (_a) {
\r\n\t
switch (_a.label) {
\r\n\t
case 0:
\r\n\t
this.dicont.removeChildren();
\r\n\t
this.movesteps = 0;
\r\n\t
this.startime = Date.now();
\r\n\t
this.removeSelectImg();
\r\n\t
actidx = props.actidx;
\r\n\t
this.gametime = this.gameTimes[actidx];
\r\n\t
this.showtime = this.gameTimes[actidx];
\r\n\t
this.passtime = 0;
\r\n\t
engine.globalEvent.dispatchEvent(
\"
pictures-time-update
\"
, {
\r\n\t
time: this.showtime,
\r\n\t
});
\r\n\t
engine.globalEvent.dispatchEvent(
\"
pictures-time-passtime
\"
, {
\r\n\t
passtime: this.passtime
\r\n\t
});
\r\n\t
this.rows = props.rows;
\r\n\t
this.cols = props.cols;
\r\n\t
this.nselectimg = null;
\r\n\t
if (this.rows == 3) {
\r\n\t
this.nselectimg = this.selectimg3;
\r\n\t
}
\r\n\t
if (this.rows == 4) {
\r\n\t
this.nselectimg = this.selectimg4;
\r\n\t
}
\r\n\t
this.selectImgArr = new Array();
\r\n\t
this.sucposData = {};
\r\n\t
tex = this.onegamePics[actidx];
\r\n\t
type1 = 1;
\r\n\t
if (!tex) {
\r\n\t
tex = this.gameUrls[actidx];
\r\n\t
type1 = 2;
\r\n\t
}
\r\n\t
return [4, qietu(tex, type1, this.rows, this.cols, this.dicont)];
\r\n\t
case 1:
\r\n\t
result = _a.sent();
\r\n\t
res = result.res;
\r\n\t
if (res) {
\r\n\t
picarr = result.picarr;
\r\n\t
mwid = result.mwid;
\r\n\t
mhei = result.mhei;
\r\n\t
picnames = result.picnames;
\r\n\t
this.mwid = mwid;
\r\n\t
this.mhei = mhei;
\r\n\t
this.picarr = picarr;
\r\n\t
this.picnames = picnames;
\r\n\t
gap = 2;
\r\n\t
for (r = 0; r < this.rows; r++) {
\r\n\t
for (c = 0; c < this.cols; c++) {
\r\n\t
ipicx = mwid * c + gap;
\r\n\t
ipicy = mhei * r + gap;
\r\n\t
npicname =
\"
pic_
\"
+ c +
\"
_
\"
+ r;
\r\n\t
ipic = picarr[npicname];
\r\n\t
this.dicont.addChild(ipic);
\r\n\t
ipic.x = ipicx;
\r\n\t
ipic.y = ipicy;
\r\n\t
}
\r\n\t
}
\r\n\t
this.lineShape.clear();
\r\n\t
this.lineShape.beginStroke(0x0069df, 4, engine.LINE_CAP.BUTT, engine.LINE_JOIN.BEVEL, 100);
\r\n\t
this.lineShape.moveTo(0 + gap, 0 + gap);
\r\n\t
this.lineShape.lineTo(mhei * this.cols + gap, 0 + gap);
\r\n\t
this.lineShape.lineTo(mhei * this.cols + gap, mwid * this.rows + gap);
\r\n\t
this.lineShape.lineTo(0 + gap, mwid * this.rows + gap);
\r\n\t
this.lineShape.lineTo(0 + gap, 0 + gap);
\r\n\t
for (rl = 1; rl < this.rows; rl++) {
\r\n\t
this.lineShape.moveTo(0 + gap, rl * mhei + gap);
\r\n\t
this.lineShape.lineTo(mwid * this.cols + gap, rl * mhei + gap);
\r\n\t
}
\r\n\t
for (cl = 1; cl < this.cols; cl++) {
\r\n\t
this.lineShape.moveTo(cl * mwid + gap, 0 + gap);
\r\n\t
this.lineShape.lineTo(cl * mwid + gap, this.rows * mhei + gap);
\r\n\t
}
\r\n\t
this.lineShape.endStroke();
\r\n\t
this.ticker && clearInterval(this.ticker);
\r\n\t
this.ticker = setInterval(this.update, 10);
\r\n\t
}
\r\n\t
else {
\r\n\t
console.error(
\"
图片处理失败
\"
);
\r\n\t
}
\r\n\t
return [2];
\r\n\t
}
\r\n\t
});
\r\n\t
});
\r\n\t
};
\r\n\t
GameView.prototype.luanxu = function () {
\r\n\t
var gap = 2;
\r\n\t
for (var r = 0; r < this.rows; r++) {
\r\n\t
for (var c = 0; c < this.cols; c++) {
\r\n\t
var ipicx = this.mwid * c + gap;
\r\n\t
var ipicy = this.mhei * r + gap;
\r\n\t
var npicname =
\"
pic_
\"
+ c +
\"
_
\"
+ r;
\r\n\t
this.sucposData[npicname] = r +
\"
_
\"
+ c;
\r\n\t
var selidx = Math.floor(Math.random() * this.picnames.length);
\r\n\t
var ipicname = this.picnames[selidx];
\r\n\t
if (r == c && r != this.rows - 1) {
\r\n\t
while (ipicname == npicname) {
\r\n\t
selidx = Math.floor(Math.random() * this.picnames.length);
\r\n\t
ipicname = this.picnames[selidx];
\r\n\t
}
\r\n\t
}
\r\n\t
var ipic = this.picarr[ipicname];
\r\n\t
this.picnames.splice(selidx, 1);
\r\n\t
ipic.x = ipicx;
\r\n\t
ipic.y = ipicy;
\r\n\t
ipic[
\"
postr
\"
] = r +
\"
_
\"
+ c;
\r\n\t
ipic.addEventListener(engine.MouseEvent.MOUSE_DOWN, this.touchPic, this);
\r\n\t
}
\r\n\t
}
\r\n\t
};
\r\n\t
GameView.prototype.pause = function () {
\r\n\t
this.ingame = false;
\r\n\t
console.error(
\"
拼图暂停
\"
);
\r\n\t
};
\r\n\t
GameView.prototype.resume = function () {
\r\n\t
this.lastframetime = Date.now();
\r\n\t
this.ingame = true;
\r\n\t
console.error(
\"
拼图继续
\"
);
\r\n\t
};
\r\n\t
GameView.prototype.update = function () {
\r\n\t
var ntime = Date.now();
\r\n\t
if (!this.lastframetime) {
\r\n\t
this.lastframetime = ntime;
\r\n\t
return;
\r\n\t
}
\r\n\t
if (this.ingame) {
\r\n\t
var passtime = (ntime - this.lastframetime) / 1000;
\r\n\t
this.passtime += passtime;
\r\n\t
engine.globalEvent.dispatchEvent(
\"
pictures-time-passtime
\"
, {
\r\n\t
passtime: this.passtime
\r\n\t
});
\r\n\t
var showtime1 = Math.round(this.gametime - this.passtime);
\r\n\t
if (this.showtime != showtime1) {
\r\n\t
this.showtime = showtime1;
\r\n\t
if (this.showtime <= 0) {
\r\n\t
this.showtime = 0;
\r\n\t
this.gameover(2);
\r\n\t
}
\r\n\t
engine.globalEvent.dispatchEvent(
\"
pictures-time-update
\"
, {
\r\n\t
time: this.showtime
\r\n\t
});
\r\n\t
}
\r\n\t
}
\r\n\t
this.lastframetime = ntime;
\r\n\t
};
\r\n\t
GameView.prototype.touchPic = function (e) {
\r\n\t
if (!this.ingame) {
\r\n\t
return;
\r\n\t
}
\r\n\t
var selectname = e.target.name;
\r\n\t
var spx = e.target.x;
\r\n\t
var spy = e.target.y;
\r\n\t
var gap = 2;
\r\n\t
if (this.selectImgArr.length == 0) {
\r\n\t
if (this.nselectimg) {
\r\n\t
this.blockcont.addChild(this.nselectimg);
\r\n\t
this.nselectimg.x = spx - gap;
\r\n\t
this.nselectimg.y = spy - gap;
\r\n\t
}
\r\n\t
this.selectImgArr.push(selectname);
\r\n\t
}
\r\n\t
else if (this.selectImgArr.length == 1) {
\r\n\t
if (selectname == this.selectImgArr[0]) {
\r\n\t
if (this.nselectimg) {
\r\n\t
this.blockcont.removeChild(this.nselectimg);
\r\n\t
}
\r\n\t
this.selectImgArr = new Array();
\r\n\t
return;
\r\n\t
}
\r\n\t
else {
\r\n\t
this.selectImgArr.push(selectname);
\r\n\t
this.changeImgPos();
\r\n\t
}
\r\n\t
}
\r\n\t
};
\r\n\t
GameView.prototype.changeImgPos = function () {
\r\n\t
var img1name = this.selectImgArr[0];
\r\n\t
var img2name = this.selectImgArr[1];
\r\n\t
var img1 = this.dicont.getChildByName(img1name);
\r\n\t
var img2 = this.dicont.getChildByName(img2name);
\r\n\t
var imgpos1x = img1.x;
\r\n\t
var imgpos1y = img1.y;
\r\n\t
var imgpos2x = img2.x;
\r\n\t
var imgpos2y = img2.y;
\r\n\t
var imgpostr1 = img1.postr;
\r\n\t
var imgpostr2 = img2.postr;
\r\n\t
img1.x = imgpos2x;
\r\n\t
img1.y = imgpos2y;
\r\n\t
img1.postr = imgpostr2;
\r\n\t
img2.x = imgpos1x;
\r\n\t
img2.y = imgpos1y;
\r\n\t
img2.postr = imgpostr1;
\r\n\t
this.selectImgArr = new Array();
\r\n\t
this.movesteps += 1;
\r\n\t
if (this.nselectimg) {
\r\n\t
this.blockcont.removeChild(this.nselectimg);
\r\n\t
}
\r\n\t
var isuc = this.checkSuccess();
\r\n\t
if (isuc) {
\r\n\t
console.error(
\"
成功过关
\"
);
\r\n\t
this.gameover(1);
\r\n\t
}
\r\n\t
};
\r\n\t
GameView.prototype.checkSuccess = function () {
\r\n\t
var isuc = true;
\r\n\t
for (var r = 0; r < this.rows; r++) {
\r\n\t
for (var c = 0; c < this.cols; c++) {
\r\n\t
var ipicname =
\"
pic_
\"
+ c +
\"
_
\"
+ r;
\r\n\t
var npicstr = r +
\"
_
\"
+ c;
\r\n\t
var ipic = this.dicont.getChildByName(ipicname);
\r\n\t
var ipostr = ipic.postr;
\r\n\t
if (npicstr != ipostr) {
\r\n\t
isuc = false;
\r\n\t
break;
\r\n\t
}
\r\n\t
}
\r\n\t
}
\r\n\t
return isuc;
\r\n\t
};
\r\n\t
GameView.prototype.gameover = function (reason) {
\r\n\t
this.ingame = false;
\r\n\t
this.ticker && clearInterval(this.ticker);
\r\n\t
var ntime = Date.now();
\r\n\t
var gametime = ntime - this.startime;
\r\n\t
engine.globalEvent.dispatchEvent('pictures-game-over', {
\r\n\t
reason: reason,
\r\n\t
time: this.passtime,
\r\n\t
number: this.movesteps,
\r\n\t
gametime: gametime
\r\n\t
});
\r\n\t
};
\r\n\t
return GameView;
\r\n\t
}(engine.Container));
\r\n\t
//# sourceMappingURL=GameView.js.map
\n\n\t
var GameWrapper = (function (_super) {
\r\n\t
tslib.__extends(GameWrapper, _super);
\r\n\t
function GameWrapper() {
\r\n\t
var _this = _super.call(this) || this;
\r\n\t
_this._gameView = new GameView();
\r\n\t
_this.addChild(_this._gameView);
\r\n\t
engine.globalEvent.addEventListener('pictures-initgame', _this.initgame, _this);
\r\n\t
engine.globalEvent.addEventListener('pictures-start', _this.start, _this);
\r\n\t
engine.globalEvent.addEventListener('pictures-luanxu', _this.luanxu, _this);
\r\n\t
engine.globalEvent.addEventListener('pictures-pause', _this.pause, _this);
\r\n\t
engine.globalEvent.addEventListener('pictures-resume', _this.resume, _this);
\r\n\t
return _this;
\r\n\t
}
\r\n\t
GameWrapper.prototype.initgame = function (event) {
\r\n\t
injectProps(event.data);
\r\n\t
this._gameView.initgame();
\r\n\t
};
\r\n\t
GameWrapper.prototype.start = function (event) {
\r\n\t
injectProps(event.data);
\r\n\t
this._gameView.start();
\r\n\t
};
\r\n\t
GameWrapper.prototype.luanxu = function () {
\r\n\t
this._gameView.luanxu();
\r\n\t
};
\r\n\t
GameWrapper.prototype.pause = function (event) {
\r\n\t
this._gameView.pause();
\r\n\t
};
\r\n\t
GameWrapper.prototype.resume = function (event) {
\r\n\t
this._gameView.resume();
\r\n\t
};
\r\n\t
return GameWrapper;
\r\n\t
}(engine.Container));
\r\n\t
//# sourceMappingURL=GameWrapper.js.map
\n\n\t
function index (props) {
\r\n\t
prepareProps();
\r\n\t
injectProps(props);
\r\n\t
var instance = new GameWrapper();
\r\n\t
return instance;
\r\n\t
}
\r\n\t
//# sourceMappingURL=index.js.map
\n\n\t
return index;
\n\n
})));
\n
"
"code"
:
"(function (global, factory) {
\n\t
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('tslib')) :
\n\t
typeof define === 'function' && define.amd ? define(['tslib'], factory) :
\n\t
(global = global || self, global.pintu = factory(global.tslib));
\n
}(this, (function (tslib) { 'use strict';
\n\n\t
var props = {};
\r\n\t
function prepareProps() {
\r\n\t
var metaProps = getProps();
\r\n\t
engine.injectProp(props, metaProps);
\r\n\t
}
\r\n\t
function injectProps(p) {
\r\n\t
engine.injectProp(props, p);
\r\n\t
}
\r\n\t
//# sourceMappingURL=props.js.map
\n\n\t
function getTexture(uuid) {
\r\n\t
return engine.Texture.from(getAssetByUUID(uuid).uuid);
\r\n\t
}
\r\n\t
function getTextureByName(name) {
\r\n\t
return getTexture(engine.getAssetByName(name).uuid);
\r\n\t
}
\r\n\t
function loadImageByUrl(url) {
\r\n\t
return tslib.__awaiter(this, void 0, void 0, function () {
\r\n\t
return tslib.__generator(this, function (_a) {
\r\n\t
try {
\r\n\t
return [2, new Promise(function (resolve) {
\r\n\t
var t1 = setTimeout(function () {
\r\n\t
return resolve(null);
\r\n\t
}, 2000);
\r\n\t
if (engine.TextureCache[url]) {
\r\n\t
clearTimeout(t1);
\r\n\t
resolve(engine.TextureCache[url]);
\r\n\t
}
\r\n\t
else {
\r\n\t
var t = engine.Texture.from(url);
\r\n\t
t.addEventListener(
\"
loaded
\"
, function () { clearTimeout(t1); resolve(t); });
\r\n\t
}
\r\n\t
})];
\r\n\t
}
\r\n\t
catch (e) {
\r\n\t
return [2, null];
\r\n\t
}
\r\n\t
return [2];
\r\n\t
});
\r\n\t
});
\r\n\t
}
\r\n\t
//# sourceMappingURL=utils.js.map
\n\n\t
var Tool = (function () {
\r\n\t
function Tool() {
\r\n\t
}
\r\n\t
Tool.getOnePic = function () {
\r\n\t
if (this.picPool.length > 0) {
\r\n\t
return this.picPool.shift();
\r\n\t
}
\r\n\t
else {
\r\n\t
var ipic = new engine.Container();
\r\n\t
var isprite = new engine.ScrollView();
\r\n\t
isprite.name =
\"
iscrollv
\"
;
\r\n\t
var nsp = new engine.Sprite();
\r\n\t
nsp.name =
\"
isprite
\"
;
\r\n\t
nsp.texture;
\r\n\t
isprite.addChild(nsp);
\r\n\t
ipic.addChild(isprite);
\r\n\t
isprite.mouseEnabled = false;
\r\n\t
nsp.mouseEnabled = false;
\r\n\t
return ipic;
\r\n\t
}
\r\n\t
};
\r\n\t
Tool.repushToPool = function (icont) {
\r\n\t
this.picPool.push(icont);
\r\n\t
};
\r\n\t
Tool.picPool = new Array();
\r\n\t
return Tool;
\r\n\t
}());
\r\n\t
//# sourceMappingURL=Tool.js.map
\n\n\t
var qietu = (function (url, type1, rows, cols, parent) { return tslib.__awaiter(void 0, void 0, void 0, function () {
\r\n\t
var t, t1, setimgwid, mwid1, mhei1, picarr, picnames, startlix, addlix, startliy, addliy, twid1, thei1, r, startx, c, starty, nsprite, isprite, nsp, ispritename, e_1;
\r\n\t
return tslib.__generator(this, function (_a) {
\r\n\t
switch (_a.label) {
\r\n\t
case 0:
\r\n\t
_a.trys.push([0, 6, , 8]);
\r\n\t
t = void 0;
\r\n\t
if (!(type1 == 1)) return [3, 1];
\r\n\t
t = url;
\r\n\t
return [3, 5];
\r\n\t
case 1:
\r\n\t
if (!(type1 == 2)) return [3, 3];
\r\n\t
return [4, loadImageByUrl(url)];
\r\n\t
case 2:
\r\n\t
t1 = _a.sent();
\r\n\t
if (t1) {
\r\n\t
t = t1;
\r\n\t
}
\r\n\t
return [3, 5];
\r\n\t
case 3:
\r\n\t
if (!(type1 == 3)) return [3, 5];
\r\n\t
return [4, getTextureByName(
\"
testimg
\"
)];
\r\n\t
case 4:
\r\n\t
t = (_a.sent());
\r\n\t
_a.label = 5;
\r\n\t
case 5:
\r\n\t
if (!t) {
\r\n\t
return [2, qietu(
\"
testimg
\"
, 3, rows, cols)];
\r\n\t
}
\r\n\t
setimgwid = 612;
\r\n\t
mwid1 = setimgwid / rows;
\r\n\t
mhei1 = setimgwid / cols;
\r\n\t
picarr = {};
\r\n\t
picnames = [];
\r\n\t
startlix = 0;
\r\n\t
addlix = 1 / rows;
\r\n\t
startliy = 0;
\r\n\t
addliy = 1 / cols;
\r\n\t
twid1 = setimgwid;
\r\n\t
thei1 = setimgwid;
\r\n\t
for (r = 0; r < rows; r++) {
\r\n\t
startx = startlix + addlix * r;
\r\n\t
for (c = 0; c < cols; c++) {
\r\n\t
starty = startliy + addliy * c;
\r\n\t
nsprite = Tool.getOnePic();
\r\n\t
isprite = nsprite.getChildByName(
\"
iscrollv
\"
);
\r\n\t
nsp = isprite.getChildByName(
\"
isprite
\"
);
\r\n\t
nsp.texture = t;
\r\n\t
nsp.width = twid1;
\r\n\t
nsp.height = thei1;
\r\n\t
nsp.x = -starty * twid1;
\r\n\t
nsp.y = -startx * thei1;
\r\n\t
isprite.width = mwid1;
\r\n\t
isprite.height = mhei1;
\r\n\t
nsprite.width = mwid1;
\r\n\t
nsprite.height = mhei1;
\r\n\t
ispritename =
\"
pic_
\"
+ c +
\"
_
\"
+ r;
\r\n\t
nsprite.name = ispritename;
\r\n\t
picarr[ispritename] = nsprite;
\r\n\t
picnames.push(ispritename);
\r\n\t
}
\r\n\t
}
\r\n\t
return [2, {
\r\n\t
res: true,
\r\n\t
picarr: picarr,
\r\n\t
mwid: mwid1,
\r\n\t
mhei: mhei1,
\r\n\t
picnames: picnames
\r\n\t
}];
\r\n\t
case 6:
\r\n\t
e_1 = _a.sent();
\r\n\t
return [4, new Promise(function (res) {
\r\n\t
setTimeout(function () {
\r\n\t
res();
\r\n\t
}, 200);
\r\n\t
})];
\r\n\t
case 7:
\r\n\t
_a.sent();
\r\n\t
return [2, qietu(
\"
testimg
\"
, 3, rows, cols)];
\r\n\t
case 8: return [2];
\r\n\t
}
\r\n\t
});
\r\n\t
}); });
\r\n\t
//# sourceMappingURL=qietu.js.map
\n\n\t
var GameView = (function (_super) {
\r\n\t
tslib.__extends(GameView, _super);
\r\n\t
function GameView() {
\r\n\t
var _this = _super.call(this) || this;
\r\n\t
_this.ingame = false;
\r\n\t
_this.selectImgArr = [];
\r\n\t
_this.sucposData = {};
\r\n\t
_this.gameUrls = [];
\r\n\t
_this.gameTimes = [];
\r\n\t
_this.onegamePics = [];
\r\n\t
_this.movesteps = 0;
\r\n\t
_this.startime = 0;
\r\n\t
_this.once(engine.Event.ADDED_TO_STAGE, _this.initScene, _this);
\r\n\t
return _this;
\r\n\t
}
\r\n\t
GameView.prototype.initScene = function () {
\r\n\t
this.lineShape = new engine.Shape();
\r\n\t
this.selectimg3 = new engine.Image(getTextureByName(
\"
框3
\"
));
\r\n\t
this.selectimg4 = new engine.Image(getTextureByName(
\"
框4
\"
));
\r\n\t
this.selectimg3.mouseEnabled = false;
\r\n\t
this.selectimg4.mouseEnabled = false;
\r\n\t
this.dicont = new engine.Container();
\r\n\t
this.linecont = new engine.Container();
\r\n\t
this.blockcont = new engine.Container();
\r\n\t
this.addChild(this.dicont);
\r\n\t
this.addChild(this.linecont);
\r\n\t
this.addChild(this.blockcont);
\r\n\t
this.linecont.addChild(this.lineShape);
\r\n\t
engine.globalEvent.dispatchEvent(
\"
pictures-time-initcomp
\"
, {});
\r\n\t
this.removeEventListener(engine.Event.ADDED_TO_STAGE, this.initScene, this);
\r\n\t
};
\r\n\t
GameView.prototype.initgame = function () {
\r\n\t
return tslib.__awaiter(this, void 0, void 0, function () {
\r\n\t
var l, lurl, lt;
\r\n\t
return tslib.__generator(this, function (_a) {
\r\n\t
switch (_a.label) {
\r\n\t
case 0:
\r\n\t
this.gameUrls = props.gameUrls || [
\"
https://yun.duiba.com.cn/db_games/activity/game/1596074071/resource/assets/ptimgs/28.jpg
\"
,
\"
https://yun.duiba.com.cn/db_games/activity/game/1596074071/resource/assets/ptimgs/29.jpg
\"
,
\"
https://yun.duiba.com.cn/db_games/activity/game/1596074071/resource/assets/ptimgs/30.jpg
\"
];
\r\n\t
this.gameTimes = props.gameTimes || [30, 60, 60];
\r\n\t
this.onegamePics = new Array();
\r\n\t
l = 0;
\r\n\t
_a.label = 1;
\r\n\t
case 1:
\r\n\t
if (!(l < this.gameUrls.length)) return [3, 4];
\r\n\t
lurl = this.gameUrls[l];
\r\n\t
return [4, loadImageByUrl(lurl)];
\r\n\t
case 2:
\r\n\t
lt = _a.sent();
\r\n\t
if (lt) {
\r\n\t
lt = lt;
\r\n\t
}
\r\n\t
else {
\r\n\t
lt = null;
\r\n\t
}
\r\n\t
this.onegamePics.push(lt);
\r\n\t
if (this.onegamePics.length == 1) {
\r\n\t
this.startfirst();
\r\n\t
}
\r\n\t
_a.label = 3;
\r\n\t
case 3:
\r\n\t
l++;
\r\n\t
return [3, 1];
\r\n\t
case 4:
\r\n\t
this.removeSelectImg();
\r\n\t
return [2];
\r\n\t
}
\r\n\t
});
\r\n\t
});
\r\n\t
};
\r\n\t
GameView.prototype.removeSelectImg = function () {
\r\n\t
if (this.selectimg3) {
\r\n\t
this.blockcont.removeChild(this.selectimg3);
\r\n\t
}
\r\n\t
if (this.selectimg4) {
\r\n\t
this.blockcont.removeChild(this.selectimg4);
\r\n\t
}
\r\n\t
};
\r\n\t
GameView.prototype.removeDiPics = function () {
\r\n\t
var nume = this.dicont.children.length;
\r\n\t
for (var i = nume - 1; i >= 0; i--) {
\r\n\t
var ichild = this.dicont.getChildAt(i);
\r\n\t
if (ichild) {
\r\n\t
ichild.removeEventListener(engine.MouseEvent.MOUSE_DOWN, this.touchPic, this);
\r\n\t
this.dicont.removeChild(ichild);
\r\n\t
Tool.repushToPool(ichild);
\r\n\t
}
\r\n\t
}
\r\n\t
};
\r\n\t
GameView.prototype.startfirst = function () {
\r\n\t
return tslib.__awaiter(this, void 0, void 0, function () {
\r\n\t
var actidx, tex, type1, result, res, picarr, mwid, mhei, picnames, gap, r, c, ipicx, ipicy, npicname, ipic, rl, cl;
\r\n\t
return tslib.__generator(this, function (_a) {
\r\n\t
switch (_a.label) {
\r\n\t
case 0:
\r\n\t
this.removeDiPics();
\r\n\t
this.movesteps = 0;
\r\n\t
this.startime = Date.now();
\r\n\t
this.removeSelectImg();
\r\n\t
actidx = 0;
\r\n\t
this.gametime = this.gameTimes[actidx];
\r\n\t
this.showtime = this.gameTimes[actidx];
\r\n\t
this.passtime = 0;
\r\n\t
engine.globalEvent.dispatchEvent(
\"
pictures-time-update
\"
, {
\r\n\t
time: this.showtime,
\r\n\t
});
\r\n\t
engine.globalEvent.dispatchEvent(
\"
pictures-time-passtime
\"
, {
\r\n\t
passtime: this.passtime
\r\n\t
});
\r\n\t
this.rows = 3;
\r\n\t
this.cols = 3;
\r\n\t
this.nselectimg = null;
\r\n\t
if (this.rows == 3) {
\r\n\t
this.nselectimg = this.selectimg3;
\r\n\t
}
\r\n\t
if (this.rows == 4) {
\r\n\t
this.nselectimg = this.selectimg4;
\r\n\t
}
\r\n\t
this.selectImgArr = new Array();
\r\n\t
this.sucposData = {};
\r\n\t
tex = this.onegamePics[actidx];
\r\n\t
type1 = 1;
\r\n\t
if (!tex) {
\r\n\t
tex = this.gameUrls[actidx];
\r\n\t
type1 = 3;
\r\n\t
}
\r\n\t
return [4, qietu(tex, type1, this.rows, this.cols, this.dicont)];
\r\n\t
case 1:
\r\n\t
result = _a.sent();
\r\n\t
res = result.res;
\r\n\t
if (res) {
\r\n\t
picarr = result.picarr;
\r\n\t
mwid = result.mwid;
\r\n\t
mhei = result.mhei;
\r\n\t
picnames = result.picnames;
\r\n\t
this.mwid = mwid;
\r\n\t
this.mhei = mhei;
\r\n\t
this.picarr = picarr;
\r\n\t
this.picnames = picnames;
\r\n\t
gap = 2;
\r\n\t
for (r = 0; r < this.rows; r++) {
\r\n\t
for (c = 0; c < this.cols; c++) {
\r\n\t
ipicx = mwid * c + gap;
\r\n\t
ipicy = mhei * r + gap;
\r\n\t
npicname =
\"
pic_
\"
+ c +
\"
_
\"
+ r;
\r\n\t
ipic = picarr[npicname];
\r\n\t
this.dicont.addChild(ipic);
\r\n\t
ipic.x = ipicx;
\r\n\t
ipic.y = ipicy;
\r\n\t
}
\r\n\t
}
\r\n\t
this.lineShape.clear();
\r\n\t
this.lineShape.beginStroke(0x0069df, 4, engine.LINE_CAP.BUTT, engine.LINE_JOIN.BEVEL, 100);
\r\n\t
this.lineShape.moveTo(0 + gap, 0 + gap);
\r\n\t
this.lineShape.lineTo(mhei * this.cols + gap, 0 + gap);
\r\n\t
this.lineShape.lineTo(mhei * this.cols + gap, mwid * this.rows + gap);
\r\n\t
this.lineShape.lineTo(0 + gap, mwid * this.rows + gap);
\r\n\t
this.lineShape.lineTo(0 + gap, 0 + gap);
\r\n\t
for (rl = 1; rl < this.rows; rl++) {
\r\n\t
this.lineShape.moveTo(0 + gap, rl * mhei + gap);
\r\n\t
this.lineShape.lineTo(mwid * this.cols + gap, rl * mhei + gap);
\r\n\t
}
\r\n\t
for (cl = 1; cl < this.cols; cl++) {
\r\n\t
this.lineShape.moveTo(cl * mwid + gap, 0 + gap);
\r\n\t
this.lineShape.lineTo(cl * mwid + gap, this.rows * mhei + gap);
\r\n\t
}
\r\n\t
this.lineShape.endStroke();
\r\n\t
engine.globalEvent.dispatchEvent(
\"
pictures-load-complete
\"
);
\r\n\t
this.ticker && clearInterval(this.ticker);
\r\n\t
this.ticker = setInterval(this.update, 10);
\r\n\t
}
\r\n\t
else {
\r\n\t
console.error(
\"
图片处理失败
\"
);
\r\n\t
}
\r\n\t
return [2];
\r\n\t
}
\r\n\t
});
\r\n\t
});
\r\n\t
};
\r\n\t
GameView.prototype.start = function () {
\r\n\t
return tslib.__awaiter(this, void 0, void 0, function () {
\r\n\t
var actidx, tex, type1, result, res, picarr, mwid, mhei, picnames, gap, r, c, ipicx, ipicy, npicname, ipic, rl, cl;
\r\n\t
return tslib.__generator(this, function (_a) {
\r\n\t
switch (_a.label) {
\r\n\t
case 0:
\r\n\t
this.removeDiPics();
\r\n\t
this.movesteps = 0;
\r\n\t
this.startime = Date.now();
\r\n\t
this.removeSelectImg();
\r\n\t
actidx = props.actidx;
\r\n\t
this.gametime = this.gameTimes[actidx];
\r\n\t
this.showtime = this.gameTimes[actidx];
\r\n\t
this.passtime = 0;
\r\n\t
engine.globalEvent.dispatchEvent(
\"
pictures-time-update
\"
, {
\r\n\t
time: this.showtime,
\r\n\t
});
\r\n\t
engine.globalEvent.dispatchEvent(
\"
pictures-time-passtime
\"
, {
\r\n\t
passtime: this.passtime
\r\n\t
});
\r\n\t
this.rows = props.rows;
\r\n\t
this.cols = props.cols;
\r\n\t
this.nselectimg = null;
\r\n\t
if (this.rows == 3) {
\r\n\t
this.nselectimg = this.selectimg3;
\r\n\t
}
\r\n\t
if (this.rows == 4) {
\r\n\t
this.nselectimg = this.selectimg4;
\r\n\t
}
\r\n\t
this.selectImgArr = new Array();
\r\n\t
this.sucposData = {};
\r\n\t
tex = this.onegamePics[actidx];
\r\n\t
type1 = 1;
\r\n\t
if (!tex) {
\r\n\t
tex = this.gameUrls[actidx];
\r\n\t
type1 = 3;
\r\n\t
}
\r\n\t
return [4, qietu(tex, type1, this.rows, this.cols, this.dicont)];
\r\n\t
case 1:
\r\n\t
result = _a.sent();
\r\n\t
res = result.res;
\r\n\t
if (res) {
\r\n\t
picarr = result.picarr;
\r\n\t
mwid = result.mwid;
\r\n\t
mhei = result.mhei;
\r\n\t
picnames = result.picnames;
\r\n\t
this.mwid = mwid;
\r\n\t
this.mhei = mhei;
\r\n\t
this.picarr = picarr;
\r\n\t
this.picnames = picnames;
\r\n\t
gap = 2;
\r\n\t
for (r = 0; r < this.rows; r++) {
\r\n\t
for (c = 0; c < this.cols; c++) {
\r\n\t
ipicx = mwid * c + gap;
\r\n\t
ipicy = mhei * r + gap;
\r\n\t
npicname =
\"
pic_
\"
+ c +
\"
_
\"
+ r;
\r\n\t
ipic = picarr[npicname];
\r\n\t
this.dicont.addChild(ipic);
\r\n\t
ipic.x = ipicx;
\r\n\t
ipic.y = ipicy;
\r\n\t
}
\r\n\t
}
\r\n\t
this.lineShape.clear();
\r\n\t
this.lineShape.beginStroke(0x0069df, 4, engine.LINE_CAP.BUTT, engine.LINE_JOIN.BEVEL, 100);
\r\n\t
this.lineShape.moveTo(0 + gap, 0 + gap);
\r\n\t
this.lineShape.lineTo(mhei * this.cols + gap, 0 + gap);
\r\n\t
this.lineShape.lineTo(mhei * this.cols + gap, mwid * this.rows + gap);
\r\n\t
this.lineShape.lineTo(0 + gap, mwid * this.rows + gap);
\r\n\t
this.lineShape.lineTo(0 + gap, 0 + gap);
\r\n\t
for (rl = 1; rl < this.rows; rl++) {
\r\n\t
this.lineShape.moveTo(0 + gap, rl * mhei + gap);
\r\n\t
this.lineShape.lineTo(mwid * this.cols + gap, rl * mhei + gap);
\r\n\t
}
\r\n\t
for (cl = 1; cl < this.cols; cl++) {
\r\n\t
this.lineShape.moveTo(cl * mwid + gap, 0 + gap);
\r\n\t
this.lineShape.lineTo(cl * mwid + gap, this.rows * mhei + gap);
\r\n\t
}
\r\n\t
this.lineShape.endStroke();
\r\n\t
this.ticker && clearInterval(this.ticker);
\r\n\t
this.ticker = setInterval(this.update, 10);
\r\n\t
}
\r\n\t
else {
\r\n\t
console.error(
\"
图片处理失败
\"
);
\r\n\t
}
\r\n\t
return [2];
\r\n\t
}
\r\n\t
});
\r\n\t
});
\r\n\t
};
\r\n\t
GameView.prototype.luanxu = function () {
\r\n\t
var gap = 2;
\r\n\t
for (var r = 0; r < this.rows; r++) {
\r\n\t
for (var c = 0; c < this.cols; c++) {
\r\n\t
var ipicx = this.mwid * c + gap;
\r\n\t
var ipicy = this.mhei * r + gap;
\r\n\t
var npicname =
\"
pic_
\"
+ c +
\"
_
\"
+ r;
\r\n\t
this.sucposData[npicname] = r +
\"
_
\"
+ c;
\r\n\t
var selidx = Math.floor(Math.random() * this.picnames.length);
\r\n\t
var ipicname = this.picnames[selidx];
\r\n\t
if (r == c && r != this.rows - 1) {
\r\n\t
while (ipicname == npicname) {
\r\n\t
selidx = Math.floor(Math.random() * this.picnames.length);
\r\n\t
ipicname = this.picnames[selidx];
\r\n\t
}
\r\n\t
}
\r\n\t
var ipic = this.picarr[ipicname];
\r\n\t
this.picnames.splice(selidx, 1);
\r\n\t
ipic.x = ipicx;
\r\n\t
ipic.y = ipicy;
\r\n\t
ipic[
\"
postr
\"
] = r +
\"
_
\"
+ c;
\r\n\t
ipic.addEventListener(engine.MouseEvent.MOUSE_DOWN, this.touchPic, this);
\r\n\t
}
\r\n\t
}
\r\n\t
};
\r\n\t
GameView.prototype.pause = function () {
\r\n\t
this.ingame = false;
\r\n\t
};
\r\n\t
GameView.prototype.resume = function () {
\r\n\t
this.lastframetime = Date.now();
\r\n\t
this.ingame = true;
\r\n\t
};
\r\n\t
GameView.prototype.update = function () {
\r\n\t
var ntime = Date.now();
\r\n\t
if (!this.lastframetime) {
\r\n\t
this.lastframetime = ntime;
\r\n\t
return;
\r\n\t
}
\r\n\t
if (this.ingame) {
\r\n\t
var passtime = (ntime - this.lastframetime) / 1000;
\r\n\t
this.passtime += passtime;
\r\n\t
engine.globalEvent.dispatchEvent(
\"
pictures-time-passtime
\"
, {
\r\n\t
passtime: this.passtime
\r\n\t
});
\r\n\t
var showtime1 = Math.round(this.gametime - this.passtime);
\r\n\t
if (this.showtime != showtime1) {
\r\n\t
this.showtime = showtime1;
\r\n\t
if (this.showtime <= 0) {
\r\n\t
this.showtime = 0;
\r\n\t
this.gameover(2);
\r\n\t
}
\r\n\t
engine.globalEvent.dispatchEvent(
\"
pictures-time-update
\"
, {
\r\n\t
time: this.showtime
\r\n\t
});
\r\n\t
}
\r\n\t
}
\r\n\t
this.lastframetime = ntime;
\r\n\t
};
\r\n\t
GameView.prototype.touchPic = function (e) {
\r\n\t
if (!this.ingame) {
\r\n\t
return;
\r\n\t
}
\r\n\t
var selectname = e.target.name;
\r\n\t
var spx = e.target.x;
\r\n\t
var spy = e.target.y;
\r\n\t
var gap = 2;
\r\n\t
if (this.selectImgArr.length == 0) {
\r\n\t
if (this.nselectimg) {
\r\n\t
this.blockcont.addChild(this.nselectimg);
\r\n\t
this.nselectimg.x = spx - gap;
\r\n\t
this.nselectimg.y = spy - gap;
\r\n\t
}
\r\n\t
this.selectImgArr.push(selectname);
\r\n\t
}
\r\n\t
else if (this.selectImgArr.length == 1) {
\r\n\t
if (selectname == this.selectImgArr[0]) {
\r\n\t
if (this.nselectimg) {
\r\n\t
this.blockcont.removeChild(this.nselectimg);
\r\n\t
}
\r\n\t
this.selectImgArr = new Array();
\r\n\t
return;
\r\n\t
}
\r\n\t
else {
\r\n\t
this.selectImgArr.push(selectname);
\r\n\t
this.changeImgPos();
\r\n\t
}
\r\n\t
}
\r\n\t
};
\r\n\t
GameView.prototype.changeImgPos = function () {
\r\n\t
var img1name = this.selectImgArr[0];
\r\n\t
var img2name = this.selectImgArr[1];
\r\n\t
var img1 = this.dicont.getChildByName(img1name);
\r\n\t
var img2 = this.dicont.getChildByName(img2name);
\r\n\t
var imgpos1x = img1.x;
\r\n\t
var imgpos1y = img1.y;
\r\n\t
var imgpos2x = img2.x;
\r\n\t
var imgpos2y = img2.y;
\r\n\t
var imgpostr1 = img1.postr;
\r\n\t
var imgpostr2 = img2.postr;
\r\n\t
img1.x = imgpos2x;
\r\n\t
img1.y = imgpos2y;
\r\n\t
img1.postr = imgpostr2;
\r\n\t
img2.x = imgpos1x;
\r\n\t
img2.y = imgpos1y;
\r\n\t
img2.postr = imgpostr1;
\r\n\t
this.selectImgArr = new Array();
\r\n\t
this.movesteps += 1;
\r\n\t
if (this.nselectimg) {
\r\n\t
this.blockcont.removeChild(this.nselectimg);
\r\n\t
}
\r\n\t
var isuc = this.checkSuccess();
\r\n\t
if (isuc) {
\r\n\t
this.gameover(1);
\r\n\t
}
\r\n\t
};
\r\n\t
GameView.prototype.checkSuccess = function () {
\r\n\t
var isuc = true;
\r\n\t
for (var r = 0; r < this.rows; r++) {
\r\n\t
for (var c = 0; c < this.cols; c++) {
\r\n\t
var ipicname =
\"
pic_
\"
+ c +
\"
_
\"
+ r;
\r\n\t
var npicstr = r +
\"
_
\"
+ c;
\r\n\t
var ipic = this.dicont.getChildByName(ipicname);
\r\n\t
var ipostr = ipic.postr;
\r\n\t
if (npicstr != ipostr) {
\r\n\t
isuc = false;
\r\n\t
break;
\r\n\t
}
\r\n\t
}
\r\n\t
}
\r\n\t
return isuc;
\r\n\t
};
\r\n\t
GameView.prototype.gameover = function (reason) {
\r\n\t
this.ingame = false;
\r\n\t
this.ticker && clearInterval(this.ticker);
\r\n\t
var ntime = Date.now();
\r\n\t
var gametime = ntime - this.startime;
\r\n\t
engine.globalEvent.dispatchEvent('pictures-game-over', {
\r\n\t
reason: reason,
\r\n\t
time: this.passtime,
\r\n\t
number: this.movesteps,
\r\n\t
gametime: gametime
\r\n\t
});
\r\n\t
};
\r\n\t
return GameView;
\r\n\t
}(engine.Container));
\r\n\t
//# sourceMappingURL=GameView.js.map
\n\n\t
var GameWrapper = (function (_super) {
\r\n\t
tslib.__extends(GameWrapper, _super);
\r\n\t
function GameWrapper() {
\r\n\t
var _this = _super.call(this) || this;
\r\n\t
_this._gameView = new GameView();
\r\n\t
_this.addChild(_this._gameView);
\r\n\t
engine.globalEvent.addEventListener('pictures-initgame', _this.initgame, _this);
\r\n\t
engine.globalEvent.addEventListener('pictures-start', _this.start, _this);
\r\n\t
engine.globalEvent.addEventListener('pictures-luanxu', _this.luanxu, _this);
\r\n\t
engine.globalEvent.addEventListener('pictures-pause', _this.pause, _this);
\r\n\t
engine.globalEvent.addEventListener('pictures-resume', _this.resume, _this);
\r\n\t
return _this;
\r\n\t
}
\r\n\t
GameWrapper.prototype.initgame = function (event) {
\r\n\t
injectProps(event.data);
\r\n\t
this._gameView.initgame();
\r\n\t
};
\r\n\t
GameWrapper.prototype.start = function (event) {
\r\n\t
injectProps(event.data);
\r\n\t
this._gameView.start();
\r\n\t
};
\r\n\t
GameWrapper.prototype.luanxu = function () {
\r\n\t
this._gameView.luanxu();
\r\n\t
};
\r\n\t
GameWrapper.prototype.pause = function (event) {
\r\n\t
this._gameView.pause();
\r\n\t
};
\r\n\t
GameWrapper.prototype.resume = function (event) {
\r\n\t
this._gameView.resume();
\r\n\t
};
\r\n\t
return GameWrapper;
\r\n\t
}(engine.Container));
\r\n\t
//# sourceMappingURL=GameWrapper.js.map
\n\n\t
function index (props) {
\r\n\t
prepareProps();
\r\n\t
injectProps(props);
\r\n\t
var instance = new GameWrapper();
\r\n\t
return instance;
\r\n\t
}
\r\n\t
//# sourceMappingURL=index.js.map
\n\n\t
return index;
\n\n
})));
\n
"
}
src/custom/pintu/debug/app.js
View file @
f0f9841e
...
...
@@ -48,7 +48,7 @@ function launchWithCustomModule(customModule) {
setTimeout
(()
=>
{
engine
.
globalEvent
.
dispatchEvent
(
'pictures-initgame'
,
{
gameUrls
:[
"https://yun.duiba.com.cn/aurora/assets/5906e5670cb7061dfc77306087e9a79d4bbcb250.jpg"
,
"https://yun.duiba.com.cn/aurora/assets/5906e5670cb7061dfc77306087e9a79d4bbcb250
1
.jpg"
,
"https://yun.duiba.com.cn/aurora/assets/61fd0754d7924305fd2851be86a480d71d2c2981.jpg"
,
"https://yun.duiba.com.cn/aurora/assets/6b70d7ec626f35f21347bf5bc3e61bedc44167be.jpg"
],
...
...
src/custom/pintu/debug/main.js
View file @
f0f9841e
...
...
@@ -23,108 +23,113 @@
function
loadImageByUrl
(
url
)
{
return
tslib
.
__awaiter
(
this
,
void
0
,
void
0
,
function
()
{
return
tslib
.
__generator
(
this
,
function
(
_a
)
{
console
.
log
(
'loadImageByUrl----------:'
,
url
);
try
{
return
[
2
,
new
Promise
(
function
(
resolve
)
{
var
t1
=
setTimeout
(
function
()
{
return
resolve
(
null
);
},
2000
);
if
(
engine
.
TextureCache
[
url
])
{
clearTimeout
(
t1
);
resolve
(
engine
.
TextureCache
[
url
]);
}
else
{
var
t
=
engine
.
Texture
.
from
(
url
);
t
.
addEventListener
(
"loaded"
,
function
()
{
resolve
(
t
);
});
t
.
addEventListener
(
"loaded"
,
function
()
{
clearTimeout
(
t1
);
resolve
(
t
);
});
}
})];
}
catch
(
e
)
{
return
[
2
,
null
];
}
return
[
2
];
});
});
}
//# sourceMappingURL=utils.js.map
var
Tool
=
(
function
()
{
function
Tool
()
{
}
Tool
.
getOnePic
=
function
()
{
if
(
this
.
picPool
.
length
>
0
)
{
return
this
.
picPool
.
shift
();
}
else
{
var
ipic
=
new
engine
.
Container
();
var
isprite
=
new
engine
.
ScrollView
();
isprite
.
name
=
"iscrollv"
;
var
nsp
=
new
engine
.
Sprite
();
nsp
.
name
=
"isprite"
;
nsp
.
texture
;
isprite
.
addChild
(
nsp
);
ipic
.
addChild
(
isprite
);
isprite
.
mouseEnabled
=
false
;
nsp
.
mouseEnabled
=
false
;
return
ipic
;
}
};
Tool
.
repushToPool
=
function
(
icont
)
{
this
.
picPool
.
push
(
icont
);
};
Tool
.
picPool
=
new
Array
();
return
Tool
;
}());
//# sourceMappingURL=Tool.js.map
var
qietu
=
(
function
(
url
,
type1
,
rows
,
cols
,
parent
)
{
return
tslib
.
__awaiter
(
void
0
,
void
0
,
void
0
,
function
()
{
var
t
,
setimgwid
,
mwid1
,
mhei1
,
mwid
,
mhei
,
picarr
,
picnames
,
chax
,
chay
,
startlix
,
addlix
,
startliy
,
addliy
,
twid1
,
thei1
,
r
,
startx
,
c
,
starty
,
nsprite
,
isprite
,
nsp
,
ispritename
,
e_1
;
var
t
,
t1
,
setimgwid
,
mwid1
,
mhei1
,
picarr
,
picnames
,
startlix
,
addlix
,
startliy
,
addliy
,
twid1
,
thei1
,
r
,
startx
,
c
,
starty
,
nsprite
,
isprite
,
nsp
,
ispritename
,
e_1
;
return
tslib
.
__generator
(
this
,
function
(
_a
)
{
switch
(
_a
.
label
)
{
case
0
:
_a
.
trys
.
push
([
0
,
6
,
,
7
]);
_a
.
trys
.
push
([
0
,
6
,
,
8
]);
t
=
void
0
;
if
(
!
(
type1
==
1
))
return
[
3
,
1
];
t
=
url
;
return
[
3
,
3
];
case
1
:
return
[
4
,
loadImageByUrl
(
url
)];
return
[
3
,
5
];
case
1
:
if
(
!
(
type1
==
2
))
return
[
3
,
3
];
return
[
4
,
loadImageByUrl
(
url
)];
case
2
:
t
=
(
_a
.
sent
());
_a
.
label
=
3
;
t1
=
_a
.
sent
();
if
(
t1
)
{
t
=
t1
;
}
return
[
3
,
5
];
case
3
:
setimgwid
=
612
;
mwid1
=
setimgwid
/
rows
;
mhei1
=
setimgwid
/
cols
;
mwid
=
t
.
width
;
mhei
=
t
.
height
;
if
(
!
(
mwid
<
10
||
mhei
<
10
))
return
[
3
,
5
];
return
[
4
,
new
Promise
(
function
(
res
)
{
setTimeout
(
function
()
{
res
();
},
200
);
})];
if
(
!
(
type1
==
3
))
return
[
3
,
5
];
return
[
4
,
getTextureByName
(
"testimg"
)];
case
4
:
_a
.
sent
(
);
return
[
2
,
qietu
(
t
,
1
,
rows
,
cols
)]
;
t
=
(
_a
.
sent
()
);
_a
.
label
=
5
;
case
5
:
if
(
mwid
>
mhei
)
{
if
(
mhei
<
setimgwid
)
{
mwid
=
mwid
*
setimgwid
/
mhei
;
mhei
=
setimgwid
;
}
}
else
{
if
(
mwid
<
setimgwid
)
{
mhei
=
mhei
*
setimgwid
/
mwid
;
mwid
=
setimgwid
;
}
if
(
!
t
)
{
return
[
2
,
qietu
(
"testimg"
,
3
,
rows
,
cols
)];
}
setimgwid
=
612
;
mwid1
=
setimgwid
/
rows
;
mhei1
=
setimgwid
/
cols
;
picarr
=
{};
picnames
=
[];
chax
=
void
0
;
chay
=
void
0
;
startlix
=
void
0
;
addlix
=
void
0
;
startliy
=
void
0
;
addliy
=
void
0
;
twid1
=
void
0
;
thei1
=
void
0
;
if
(
mwid
>
mhei
)
{
chax
=
(
mwid
-
mhei
)
/
2
;
startlix
=
chax
/
mwid
;
addlix
=
(
mhei
/
cols
)
/
mwid
;
startliy
=
0
;
addliy
=
1
/
rows
;
twid1
=
mwid
*
setimgwid
/
mhei
;
thei1
=
setimgwid
;
}
else
{
startlix
=
0
;
addlix
=
1
/
cols
;
chay
=
(
mhei
-
mwid
)
/
2
;
startliy
=
chay
/
mhei
;
addliy
=
(
mwid
/
rows
)
/
mhei
;
thei1
=
mhei
*
setimgwid
/
mwid
;
addlix
=
1
/
rows
;
startliy
=
0
;
addliy
=
1
/
cols
;
twid1
=
setimgwid
;
}
thei1
=
setimgwid
;
for
(
r
=
0
;
r
<
rows
;
r
++
)
{
startx
=
startlix
+
addlix
*
r
;
for
(
c
=
0
;
c
<
cols
;
c
++
)
{
starty
=
startliy
+
addliy
*
c
;
nsprite
=
new
engine
.
Container
();
isprite
=
n
ew
engine
.
ScrollView
(
);
nsp
=
new
engine
.
Sprite
(
t
);
isprite
.
addChild
(
nsp
)
;
nsprite
=
Tool
.
getOnePic
();
isprite
=
n
sprite
.
getChildByName
(
"iscrollv"
);
nsp
=
isprite
.
getChildByName
(
"isprite"
);
nsp
.
texture
=
t
;
nsp
.
width
=
twid1
;
nsp
.
height
=
thei1
;
isprite
.
mouseEnabled
=
false
;
isprite
.
mouseChildren
=
false
;
nsp
.
x
=
-
starty
*
twid1
;
nsp
.
y
=
-
startx
*
thei1
;
isprite
.
width
=
mwid1
;
isprite
.
height
=
mhei1
;
nsprite
.
addChild
(
isprite
);
nsprite
.
width
=
mwid1
;
nsprite
.
height
=
mhei1
;
ispritename
=
"pic_"
+
c
+
"_"
+
r
;
...
...
@@ -142,10 +147,15 @@
}];
case
6
:
e_1
=
_a
.
sent
();
return
[
2
,
{
res
:
false
}];
case
7
:
return
[
2
];
return
[
4
,
new
Promise
(
function
(
res
)
{
setTimeout
(
function
()
{
res
();
},
200
);
})];
case
7
:
_a
.
sent
();
return
[
2
,
qietu
(
"testimg"
,
3
,
rows
,
cols
)];
case
8
:
return
[
2
];
}
});
});
});
...
...
@@ -179,7 +189,6 @@
this
.
addChild
(
this
.
linecont
);
this
.
addChild
(
this
.
blockcont
);
this
.
linecont
.
addChild
(
this
.
lineShape
);
console
.
log
(
"拼图初始化完毕--------------"
);
engine
.
globalEvent
.
dispatchEvent
(
"pictures-time-initcomp"
,
{});
this
.
removeEventListener
(
engine
.
Event
.
ADDED_TO_STAGE
,
this
.
initScene
,
this
);
};
...
...
@@ -189,9 +198,8 @@
return
tslib
.
__generator
(
this
,
function
(
_a
)
{
switch
(
_a
.
label
)
{
case
0
:
console
.
log
(
"initgame---------"
);
this
.
gameUrls
=
props
.
gameUrls
;
this
.
gameTimes
=
props
.
gameTimes
;
this
.
gameUrls
=
props
.
gameUrls
||
[
"https://yun.duiba.com.cn/db_games/activity/game/1596074071/resource/assets/ptimgs/28.jpg"
,
"https://yun.duiba.com.cn/db_games/activity/game/1596074071/resource/assets/ptimgs/29.jpg"
,
"https://yun.duiba.com.cn/db_games/activity/game/1596074071/resource/assets/ptimgs/30.jpg"
];
this
.
gameTimes
=
props
.
gameTimes
||
[
30
,
60
,
60
];
this
.
onegamePics
=
new
Array
();
l
=
0
;
_a
.
label
=
1
;
...
...
@@ -201,6 +209,12 @@
return
[
4
,
loadImageByUrl
(
lurl
)];
case
2
:
lt
=
_a
.
sent
();
if
(
lt
)
{
lt
=
lt
;
}
else
{
lt
=
null
;
}
this
.
onegamePics
.
push
(
lt
);
if
(
this
.
onegamePics
.
length
==
1
)
{
this
.
startfirst
();
...
...
@@ -224,13 +238,24 @@
this
.
blockcont
.
removeChild
(
this
.
selectimg4
);
}
};
GameView
.
prototype
.
removeDiPics
=
function
()
{
var
nume
=
this
.
dicont
.
children
.
length
;
for
(
var
i
=
nume
-
1
;
i
>=
0
;
i
--
)
{
var
ichild
=
this
.
dicont
.
getChildAt
(
i
);
if
(
ichild
)
{
ichild
.
removeEventListener
(
engine
.
MouseEvent
.
MOUSE_DOWN
,
this
.
touchPic
,
this
);
this
.
dicont
.
removeChild
(
ichild
);
Tool
.
repushToPool
(
ichild
);
}
}
};
GameView
.
prototype
.
startfirst
=
function
()
{
return
tslib
.
__awaiter
(
this
,
void
0
,
void
0
,
function
()
{
var
actidx
,
tex
,
type1
,
result
,
res
,
picarr
,
mwid
,
mhei
,
picnames
,
gap
,
r
,
c
,
ipicx
,
ipicy
,
npicname
,
ipic
,
rl
,
cl
;
return
tslib
.
__generator
(
this
,
function
(
_a
)
{
switch
(
_a
.
label
)
{
case
0
:
this
.
dicont
.
removeChildren
();
this
.
removeDiPics
();
this
.
movesteps
=
0
;
this
.
startime
=
Date
.
now
();
this
.
removeSelectImg
();
...
...
@@ -244,7 +269,6 @@
engine
.
globalEvent
.
dispatchEvent
(
"pictures-time-passtime"
,
{
passtime
:
this
.
passtime
});
console
.
log
(
"start-----------------"
,
actidx
);
this
.
rows
=
3
;
this
.
cols
=
3
;
this
.
nselectimg
=
null
;
...
...
@@ -260,7 +284,7 @@
type1
=
1
;
if
(
!
tex
)
{
tex
=
this
.
gameUrls
[
actidx
];
type1
=
2
;
type1
=
3
;
}
return
[
4
,
qietu
(
tex
,
type1
,
this
.
rows
,
this
.
cols
,
this
.
dicont
)];
case
1
:
...
...
@@ -321,7 +345,7 @@
return
tslib
.
__generator
(
this
,
function
(
_a
)
{
switch
(
_a
.
label
)
{
case
0
:
this
.
dicont
.
removeChildren
();
this
.
removeDiPics
();
this
.
movesteps
=
0
;
this
.
startime
=
Date
.
now
();
this
.
removeSelectImg
();
...
...
@@ -350,7 +374,7 @@
type1
=
1
;
if
(
!
tex
)
{
tex
=
this
.
gameUrls
[
actidx
];
type1
=
2
;
type1
=
3
;
}
return
[
4
,
qietu
(
tex
,
type1
,
this
.
rows
,
this
.
cols
,
this
.
dicont
)];
case
1
:
...
...
@@ -431,12 +455,10 @@
};
GameView
.
prototype
.
pause
=
function
()
{
this
.
ingame
=
false
;
console
.
error
(
"拼图暂停"
);
};
GameView
.
prototype
.
resume
=
function
()
{
this
.
lastframetime
=
Date
.
now
();
this
.
ingame
=
true
;
console
.
error
(
"拼图继续"
);
};
GameView
.
prototype
.
update
=
function
()
{
var
ntime
=
Date
.
now
();
...
...
@@ -518,7 +540,6 @@
}
var
isuc
=
this
.
checkSuccess
();
if
(
isuc
)
{
console
.
error
(
"成功过关"
);
this
.
gameover
(
1
);
}
};
...
...
src/custom/pintu/debug/main.js.map
View file @
f0f9841e
{
"version"
:
3
,
"file"
:
"index.js"
,
"sources"
:
[
"src/custom/pintu/src/props.ts"
,
"src/custom/pintu/src/game/utils.ts"
,
"src/custom/pintu/src/game/qietu.ts"
,
"src/custom/pintu/src/game/GameView.ts"
,
"src/custom/pintu/src/game/GameWrapper.ts"
,
"src/custom/pintu/src/index.ts"
],
"sourcesContent"
:
[
"/**
\r\n
* Created by rockyl on 2020-01-21.
\r\n
*/
\r\n\r\n
export let props: any = {};
\r\n\r\n
export function prepareProps() {\r
\n\t
let metaProps = getProps();
\r\n\r\n\t
engine.injectProp(props, metaProps);
\r\n
}
\r\n\r\n
export function injectProps(p) {\r
\n\t
engine.injectProp(props, p);
\r\n
}
\r\n
"
,
"/**
\r\n
* Created by rockyl on 2020-01-21.
\r\n
*/
\r\n\r\n
export function getTexture(uuid) {\r
\n\t
return engine.Texture.from(getAssetByUUID(uuid).uuid);
\r\n
}
\r\n\r\n
export function getTextureByName(name) {\r
\n\t
return getTexture(engine.getAssetByName(name).uuid);
\r\n
}
\r\n\r\n
export function playSound(name) {\r
\n\t
engine.playSound(engine.getAssetByName(name).uuid, {keep: true});
\r\n
}
\r\n
export function createSvga(name, anchorName?) {\r
\n\t
let inst = new svga.Svga();
\r\n\t
inst.source = 'asset://' + engine.getAssetByName(name).uuid;
\r\n\t
return inst;
\r\n
}
\r\n\r\n
export async function loadImageByUrl(url){\r
\n\t
console.log('loadImageByUrl----------:',url);
\r\n\t
return new Promise((resolve) => {\r
\n\t\t
if (engine.TextureCache[url])
{
\r\n\t\t\tresolve(engine.TextureCache[url])\r\n\t\t
}
else {\r
\n\t\t\t
var t = engine.Texture.from(url);
\r\n\t\t\t
t.addEventListener(
\"
loaded
\"
, () => { resolve(t) })
\r\n\t\t
}
\r\n\t
})
\r\n
}"
,
"import { props } from
\"
../props
\"
;
\r\n
import { loadImageByUrl } from
\"
./utils
\"
;
\r\n
import qietu from
\"
./qietu
\"
;
\r\n
const urls = [];
\r\n
const picMap = {};
\r\n
const posMap = {};
\r\n
export default async(url:any,type1:number, rows:number, cols:number,parent:engine.Container) => {\r
\n
try{\r
\n
let t:engine.Texture;
\r\n
if(type1==1){\r
\n
t = url;
\r\n
}else{\r
\n
t = await loadImageByUrl(url) as engine.Texture;
\r\n
}
\r\n
\r\n
let setimgwid = 612;
\r\n
let mwid1 = setimgwid/rows;
\r\n
let mhei1 = setimgwid/cols;
\r\n\r\n
let mwid = t.width;
\r\n
let mhei = t.height;
\r\n
if(mwid<10||mhei<10){\r
\n
await new Promise(res=>{\r
\n
setTimeout(function(){\r
\n
res();
\r\n
},200);
\r\n
})
\r\n
return qietu(t,1,rows,cols,parent);
\r\n
}
\r\n
if(mwid>mhei){\r
\n
if(mhei<setimgwid){\r
\n
mwid = mwid*setimgwid/mhei;
\r\n
mhei = setimgwid;
\r\n
}
\r\n
}else{\r
\n
if(mwid<setimgwid){\r
\n
mhei = mhei*setimgwid/mwid;
\r\n
mwid = setimgwid;
\r\n
}
\r\n
}
\r\n\r\n
let picarr = {};
\r\n
let picnames = [];
\r\n\r\n
let chax;
\r\n
let chay;
\r\n
let startlix;
\r\n
let addlix;
\r\n
let startliy;
\r\n
let addliy;
\r\n\r\n
let twid1;
\r\n
let thei1;
\r\n
if(mwid>mhei){\r
\n
chax = (mwid-mhei)/2;
\r\n
startlix = chax/mwid;
\r\n
addlix = (mhei/cols)/mwid;
\r\n\r\n
startliy = 0;
\r\n
addliy = 1/rows;
\r\n\r\n
twid1 = mwid*setimgwid/mhei;
\r\n
thei1 = setimgwid;
\r\n
}else{\r
\n
startlix = 0;
\r\n
addlix = 1/cols;
\r\n\r\n
chay = (mhei-mwid)/2;
\r\n
startliy = chay/mhei;
\r\n
addliy = (mwid/rows)/mhei;
\r\n\r\n
thei1 = mhei*setimgwid/mwid;
\r\n
twid1 = setimgwid;
\r\n
}
\r\n
\r\n
// console.log(
\"
切图准备
\"
,startlix,addlix,startliy,addliy,mwid,mhei);
\r\n
// let txt1 = new engine.Label();
\r\n
// txt1.fillColor =
\"
red
\"
;
\r\n
// txt1.size = 24;
\r\n
// txt1.text = startlix.toFixed(2)+
\"
;
\"
+addlix.toFixed(2)+
\"
;
\"
+startliy.toFixed(2)+
\"
;
\"
+addliy.toFixed(2)+
\"
;
\"
+mwid.toFixed(2)+
\"
;
\"
+mhei.toFixed(2)+
\"
;
\"\r\n
// parent.addChild(txt1);
\r\n
// txt1.y = -100;
\r\n
for(let r=0;r<rows;r++){\r
\n
let startx = startlix+addlix*r;
\r\n
let endx = startx + addlix;
\r\n
for(let c=0;c<cols;c++){\r
\n
let starty = startliy+addliy*c;
\r\n
let endy = starty+addliy;
\r\n\r\n
let uvs = new Float32Array([
\r\n
starty,
\r\n
startx,
\r\n
endy,
\r\n
startx,
\r\n
endy,
\r\n
endx,
\r\n
starty,
\r\n
endx
\r\n
])
\r\n
// let isprite = new engine.Sprite(t);
\r\n
\r\n
// isprite.uvs = uvs;
\r\n
let nsprite = new engine.Container();
\r\n\r\n
let isprite = new engine.ScrollView();
\r\n
let nsp = new engine.Sprite(t);
\r\n
isprite.addChild(nsp);
\r\n
nsp.width = twid1;
\r\n
nsp.height = thei1;
\r\n\r\n
isprite.mouseEnabled = false;
\r\n
isprite.mouseChildren = false;
\r\n
nsp.x = -starty*twid1;
\r\n
nsp.y = -startx*thei1;
\r\n\r\n
isprite.width = mwid1;
\r\n
isprite.height = mhei1;
\r\n\r\n
nsprite.addChild(isprite);
\r\n
nsprite.width = mwid1;
\r\n
nsprite.height = mhei1;
\r\n\r\n
let ispritename =
\"
pic_
\"
+c+
\"
_
\"
+r;
\r\n
nsprite.name = ispritename;
\r\n
picarr[ispritename] = nsprite;
\r\n
picnames.push(ispritename);
\r\n
}
\r\n
}
\r\n
return {\r
\n
res:true,
\r\n
picarr:picarr,
\r\n
mwid:mwid1,
\r\n
mhei:mhei1,
\r\n
picnames:picnames
\r\n
};
\r\n
}catch(e){\r
\n
return {\r
\n
res:false
\r\n
};
\r\n
}
\r\n
};
\r\n
"
,
"/**
\r\n
* Created by rockyl on 2018/8/16.
\r\n
*/
\r\n\r\n
import { props } from
\"
../props
\"
;
\r\n
import qietu from
\"
./qietu
\"
;
\r\n
import { getTexture, loadImageByUrl,getTextureByName } from
\"
./utils
\"
;
\r\n
import ObjectPool = engine.ObjectPool;
\r\n\r\n
export default class GameView extends engine.Container {\r
\n
rows:number;
\r\n
cols:number;
\r\n\r\n
passtime:number;
\r\n
gametime:number;
\r\n
showtime:number;
\r\n\r\n
lastframetime:number;
\r\n\r\n
ingame:boolean = false;
\r\n\r\n
ticker;
\r\n\r\n
selectimg3:engine.Image;
\r\n
selectimg4:engine.Image;
\r\n
nselectimg:engine.Image;
\r\n\r\n
selectImgArr:Array<string> = [];
\r\n
sucposData:Object = {};
\r\n\r\n
dicont:engine.Container;
\r\n
linecont:engine.Container;
\r\n
blockcont:engine.Container;
\r\n\r\n
lineShape:engine.Shape;
\r\n\r\n
mwid:number;
\r\n
mhei:number;
\r\n
picnames:Array<string>;
\r\n
picarr;
\r\n\r\n
gameUrls:Array<string> = [];
\r\n
gameTimes:Array<number> = [];
\r\n
onegamePics:Array<engine.Texture> = [];
\r\n
movesteps:number = 0;
\r\n
startime:number = 0;
\r\n
constructor() {\r
\n
super();
\r\n
this.once(engine.Event.ADDED_TO_STAGE, this.initScene, this);
\r\n
}
\r\n
initScene(){\r
\n
this.lineShape = new engine.Shape();
\r\n
this.selectimg3 = new engine.Image(getTextureByName(
\"
框3
\"
));
\r\n
this.selectimg4 = new engine.Image(getTextureByName(
\"
框4
\"
));
\r\n
this.selectimg3.mouseEnabled = false;
\r\n
this.selectimg4.mouseEnabled = false;
\r\n
//底图
\r\n
this.dicont = new engine.Container();
\r\n
//线
\r\n
this.linecont = new engine.Container();
\r\n
//亮片
\r\n
this.blockcont = new engine.Container();
\r\n\r\n
this.addChild(this.dicont);
\r\n
this.addChild(this.linecont);
\r\n
this.addChild(this.blockcont);
\r\n
\r\n
this.linecont.addChild(this.lineShape);
\r\n\r\n
console.log(
\"
拼图初始化完毕--------------
\"
);
\r\n
engine.globalEvent.dispatchEvent(
\"
pictures-time-initcomp
\"
,{});
\r\n
this.removeEventListener(engine.Event.ADDED_TO_STAGE,this.initScene,this);
\r\n
}
\r\n
async initgame(){\r
\n
console.log(
\"
initgame---------
\"
);
\r\n
this.gameUrls = props.gameUrls;
\r\n
this.gameTimes = props.gameTimes;
\r\n
\r\n
this.onegamePics = new Array();
\r\n
for(let l=0;l<this.gameUrls.length;l++){\r
\n
let lurl = this.gameUrls[l];
\r\n
let lt = await loadImageByUrl(lurl) as engine.Texture;
\r\n
this.onegamePics.push(lt);
\r\n
if(this.onegamePics.length==1){//第一张图加载完毕,自动填充
\r\n
this.startfirst();
\r\n\r\n
}
\r\n
}
\r\n
this.removeSelectImg();
\r\n
\r\n
}
\r\n
removeSelectImg(){\r
\n
if(this.selectimg3){\r
\n
this.blockcont.removeChild(this.selectimg3);
\r\n
}
\r\n
if(this.selectimg4){\r
\n
this.blockcont.removeChild(this.selectimg4);
\r\n
}
\r\n
}
\r\n
async startfirst(){\r
\n
this.dicont.removeChildren();
\r\n
this.movesteps = 0;
\r\n
this.startime = Date.now();
\r\n
this.removeSelectImg();
\r\n\r\n
let actidx = 0;
\r\n
this.gametime = this.gameTimes[actidx];
\r\n
this.showtime = this.gameTimes[actidx];
\r\n
this.passtime = 0;
\r\n
engine.globalEvent.dispatchEvent(
\"
pictures-time-update
\"
,{\r
\n
time:this.showtime,
\r\n
});
\r\n
engine.globalEvent.dispatchEvent(
\"
pictures-time-passtime
\"
,{\r
\n
passtime:this.passtime
\r\n
});
\r\n
console.log(
\"
start-----------------
\"
,actidx);
\r\n
this.rows = 3;
\r\n
this.cols = 3;
\r\n\r\n
this.nselectimg = null;
\r\n
if(this.rows==3){\r
\n
this.nselectimg = this.selectimg3;
\r\n
}
\r\n
if(this.rows==4){\r
\n
this.nselectimg = this.selectimg4;
\r\n
}
\r\n\r\n
\r\n
\r\n
this.selectImgArr = new Array();
\r\n
this.sucposData = {};
\r\n\r\n
let tex:any = this.onegamePics[actidx];
\r\n
let type1 = 1;
\r\n
if(!tex){\r
\n
tex = this.gameUrls[actidx];
\r\n
type1 = 2;
\r\n
}
\r\n
let result = await qietu(tex,type1,this.rows,this.cols,this.dicont);
\r\n
let res = result.res;
\r\n
if(res){\r
\n
let picarr = result.picarr;
\r\n
let mwid = result.mwid;
\r\n
let mhei = result.mhei;
\r\n
let picnames = result.picnames;
\r\n\r\n
this.mwid = mwid;
\r\n
this.mhei = mhei;
\r\n
this.picarr = picarr;
\r\n
this.picnames = picnames;
\r\n\r\n
let gap = 2;
\r\n
for(let r=0;r<this.rows;r++){\r
\n
for(let c=0;c<this.cols;c++){\r
\n
let ipicx = mwid*c+gap;
\r\n
let ipicy = mhei*r+gap;
\r\n
let npicname =
\"
pic_
\"
+c+
\"
_
\"
+r;
\r\n
let ipic = picarr[npicname];
\r\n
this.dicont.addChild(ipic);
\r\n
ipic.x = ipicx;
\r\n
ipic.y = ipicy;
\r\n
}
\r\n
}
\r\n
//框线
\r\n
this.lineShape.clear();
\r\n
this.lineShape.beginStroke(0x0069df,4,engine.LINE_CAP.BUTT,engine.LINE_JOIN.BEVEL,100);
\r\n\r\n
this.lineShape.moveTo(0+gap,0+gap);
\r\n
this.lineShape.lineTo(mhei*this.cols+gap,0+gap);
\r\n
this.lineShape.lineTo(mhei*this.cols+gap,mwid*this.rows+gap);
\r\n
this.lineShape.lineTo(0+gap,mwid*this.rows+gap);
\r\n
this.lineShape.lineTo(0+gap,0+gap);
\r\n\r\n
for(let rl=1;rl<this.rows;rl++){\r
\n
this.lineShape.moveTo(0+gap,rl*mhei+gap);
\r\n
this.lineShape.lineTo(mwid*this.cols+gap,rl*mhei+gap);
\r\n
}
\r\n
for(let cl=1;cl<this.cols;cl++){\r
\n
this.lineShape.moveTo(cl*mwid+gap,0+gap);
\r\n
this.lineShape.lineTo(cl*mwid+gap,this.rows*mhei+gap);
\r\n
}
\r\n
this.lineShape.endStroke();
\r\n
\r\n
engine.globalEvent.dispatchEvent(
\"
pictures-load-complete
\"
);
\r\n
this.ticker&&clearInterval(this.ticker);
\r\n
this.ticker = setInterval(this.update, 10);
\r\n
}else{\r
\n
console.error(
\"
图片处理失败
\"
);
\r\n
}
\r\n
}
\r\n
async start() {\r
\n
\r\n
this.dicont.removeChildren();
\r\n
this.movesteps = 0;
\r\n
this.startime = Date.now();
\r\n
this.removeSelectImg();
\r\n\r\n
let actidx = props.actidx;
\r\n
this.gametime = this.gameTimes[actidx];
\r\n
this.showtime = this.gameTimes[actidx];
\r\n
this.passtime = 0;
\r\n
engine.globalEvent.dispatchEvent(
\"
pictures-time-update
\"
,{\r
\n
time:this.showtime,
\r\n
});
\r\n
engine.globalEvent.dispatchEvent(
\"
pictures-time-passtime
\"
,{\r
\n
passtime:this.passtime
\r\n
});
\r\n
this.rows = props.rows;
\r\n
this.cols = props.cols;
\r\n\r\n
this.nselectimg = null;
\r\n
if(this.rows==3){\r
\n
this.nselectimg = this.selectimg3;
\r\n
}
\r\n
if(this.rows==4){\r
\n
this.nselectimg = this.selectimg4;
\r\n
}
\r\n\r\n
\r\n
\r\n
this.selectImgArr = new Array();
\r\n
this.sucposData = {};
\r\n\r\n
let tex:any = this.onegamePics[actidx];
\r\n
let type1 = 1;
\r\n
if(!tex){\r
\n
tex = this.gameUrls[actidx];
\r\n
type1 = 2;
\r\n
}
\r\n
let result = await qietu(tex,type1,this.rows,this.cols,this.dicont);
\r\n
let res = result.res;
\r\n
if(res){\r
\n
let picarr = result.picarr;
\r\n
let mwid = result.mwid;
\r\n
let mhei = result.mhei;
\r\n
let picnames = result.picnames;
\r\n\r\n
this.mwid = mwid;
\r\n
this.mhei = mhei;
\r\n
this.picarr = picarr;
\r\n
this.picnames = picnames;
\r\n\r\n
let gap = 2;
\r\n
for(let r=0;r<this.rows;r++){\r
\n
for(let c=0;c<this.cols;c++){\r
\n
let ipicx = mwid*c+gap;
\r\n
let ipicy = mhei*r+gap;
\r\n
let npicname =
\"
pic_
\"
+c+
\"
_
\"
+r;
\r\n\r\n
// this.sucposData[npicname] = r+
\"
_
\"
+c;
\r\n\r\n
// let selidx = Math.floor(Math.random()*picnames.length);
\r\n
// let ipicname:string = picnames[selidx];
\r\n
// if(r==c&&r!=this.rows-1){\r
\n
// while(ipicname==npicname){\r
\n
// selidx = Math.floor(Math.random()*picnames.length);
\r\n
// ipicname = picnames[selidx];
\r\n
// }
\r\n
// }
\r\n
let ipic = picarr[npicname];
\r\n
// picnames.splice(selidx,1);
\r\n
this.dicont.addChild(ipic);
\r\n
ipic.x = ipicx;
\r\n
ipic.y = ipicy;
\r\n
// ipic[
\"
postr
\"
] = r+
\"
_
\"
+c;
\r\n\r\n
// ipic.addEventListener(engine.MouseEvent.MOUSE_DOWN,
\r\n
// this.touchPic,this);
\r\n
}
\r\n
}
\r\n
//框线
\r\n
this.lineShape.clear();
\r\n
this.lineShape.beginStroke(0x0069df,4,engine.LINE_CAP.BUTT,engine.LINE_JOIN.BEVEL,100);
\r\n\r\n
this.lineShape.moveTo(0+gap,0+gap);
\r\n
this.lineShape.lineTo(mhei*this.cols+gap,0+gap);
\r\n
this.lineShape.lineTo(mhei*this.cols+gap,mwid*this.rows+gap);
\r\n
this.lineShape.lineTo(0+gap,mwid*this.rows+gap);
\r\n
this.lineShape.lineTo(0+gap,0+gap);
\r\n\r\n
for(let rl=1;rl<this.rows;rl++){\r
\n
this.lineShape.moveTo(0+gap,rl*mhei+gap);
\r\n
this.lineShape.lineTo(mwid*this.cols+gap,rl*mhei+gap);
\r\n
}
\r\n
for(let cl=1;cl<this.cols;cl++){\r
\n
this.lineShape.moveTo(cl*mwid+gap,0+gap);
\r\n
this.lineShape.lineTo(cl*mwid+gap,this.rows*mhei+gap);
\r\n
}
\r\n
this.lineShape.endStroke();
\r\n
\r\n
this.ticker&&clearInterval(this.ticker);
\r\n
this.ticker = setInterval(this.update, 10);
\r\n
}else{\r
\n
console.error(
\"
图片处理失败
\"
);
\r\n
}
\r\n
}
\r\n
luanxu(){\r
\n
let gap = 2;
\r\n
for(let r=0;r<this.rows;r++){\r
\n
for(let c=0;c<this.cols;c++){\r
\n
let ipicx = this.mwid*c+gap;
\r\n
let ipicy = this.mhei*r+gap;
\r\n
let npicname =
\"
pic_
\"
+c+
\"
_
\"
+r;
\r\n\r\n
this.sucposData[npicname] = r+
\"
_
\"
+c;
\r\n\r\n
let selidx = Math.floor(Math.random()*this.picnames.length);
\r\n
let ipicname:string = this.picnames[selidx];
\r\n
if(r==c&&r!=this.rows-1){\r
\n
while(ipicname==npicname){\r
\n
selidx = Math.floor(Math.random()*this.picnames.length);
\r\n
ipicname = this.picnames[selidx];
\r\n
}
\r\n
}
\r\n
let ipic = this.picarr[ipicname];
\r\n
this.picnames.splice(selidx,1);
\r\n
ipic.x = ipicx;
\r\n
ipic.y = ipicy;
\r\n
ipic[
\"
postr
\"
] = r+
\"
_
\"
+c;
\r\n\r\n
ipic.addEventListener(engine.MouseEvent.MOUSE_DOWN,
\r\n
this.touchPic,this);
\r\n
}
\r\n
}
\r\n
}
\r\n
pause(){\r
\n
this.ingame = false;
\r\n
console.error(
\"
拼图暂停
\"
);
\r\n
}
\r\n
resume(){\r
\n
this.lastframetime = Date.now();
\r\n
this.ingame = true;
\r\n
console.error(
\"
拼图继续
\"
);
\r\n
}
\r\n\r\n\r\n
update() {\r
\n
let ntime = Date.now();
\r\n
if(!this.lastframetime){\r
\n
this.lastframetime = ntime;
\r\n
return;
\r\n
}
\r\n
if(this.ingame){\r
\n
let passtime = (ntime - this.lastframetime)/1000;
\r\n
this.passtime += passtime;
\r\n
engine.globalEvent.dispatchEvent(
\"
pictures-time-passtime
\"
,{\r
\n
passtime:this.passtime
\r\n
});
\r\n
let showtime1 = Math.round(this.gametime - this.passtime);
\r\n
// console.log(passtime,this.passtime,this.gametime,this.showtime);
\r\n
if(this.showtime!=showtime1){\r
\n
this.showtime = showtime1;
\r\n
if(this.showtime<=0){\r
\n
this.showtime = 0;
\r\n
this.gameover(2);
\r\n
}
\r\n
// console.log(
\"
倒计时
\"
,this.showtime);
\r\n
engine.globalEvent.dispatchEvent(
\"
pictures-time-update
\"
,{\r
\n
time:this.showtime
\r\n
});
\r\n
}
\r\n
}
\r\n
this.lastframetime = ntime;
\r\n
}
\r\n\r\n
touchPic(e:engine.MouseEvent){\r
\n
if(!this.ingame){\r
\n
return;
\r\n
}
\r\n
// console.log(e.target.name);
\r\n
let selectname = e.target.name;
\r\n
let spx = e.target.x;
\r\n
let spy = e.target.y;
\r\n
let gap = 2;
\r\n
if(this.selectImgArr.length==0){\r
\n
if(this.nselectimg){\r
\n
this.blockcont.addChild(this.nselectimg);
\r\n
this.nselectimg.x = spx-gap;
\r\n
this.nselectimg.y = spy-gap;
\r\n
}
\r\n
this.selectImgArr.push(selectname);
\r\n
}else if(this.selectImgArr.length==1){\r
\n
if(selectname==this.selectImgArr[0]){\r
\n
if(this.nselectimg){\r
\n
this.blockcont.removeChild(this.nselectimg);
\r\n
}
\r\n
this.selectImgArr = new Array();
\r\n
return;
\r\n
}else{\r
\n
this.selectImgArr.push(selectname);
\r\n
this.changeImgPos();
\r\n
}
\r\n
}
\r\n
}
\r\n
changeImgPos(){\r
\n
let img1name = this.selectImgArr[0];
\r\n
let img2name = this.selectImgArr[1];
\r\n\r\n
let img1 = this.dicont.getChildByName(img1name);
\r\n
let img2 = this.dicont.getChildByName(img2name);
\r\n\r\n
let imgpos1x = img1.x;
\r\n
let imgpos1y = img1.y;
\r\n
let imgpos2x = img2.x;
\r\n
let imgpos2y = img2.y;
\r\n\r\n
let imgpostr1 = img1.postr;
\r\n
let imgpostr2 = img2.postr;
\r\n\r\n
img1.x = imgpos2x;
\r\n
img1.y = imgpos2y;
\r\n
img1.postr = imgpostr2;
\r\n\r\n
img2.x = imgpos1x;
\r\n
img2.y = imgpos1y;
\r\n
img2.postr = imgpostr1;
\r\n\r\n
this.selectImgArr = new Array();
\r\n
\r\n
this.movesteps += 1;
\r\n\r\n
if(this.nselectimg){\r
\n
this.blockcont.removeChild(this.nselectimg);
\r\n
}
\r\n
let isuc = this.checkSuccess();
\r\n
if(isuc){\r
\n
console.error(
\"
成功过关
\"
);
\r\n
this.gameover(1);
\r\n
}
\r\n
}
\r\n
checkSuccess(){\r
\n
let isuc:boolean = true;
\r\n
for(let r=0;r<this.rows;r++){\r
\n
for(let c=0;c<this.cols;c++){\r
\n
let ipicname =
\"
pic_
\"
+c+
\"
_
\"
+r;
\r\n
let npicstr = r+
\"
_
\"
+c;
\r\n
let ipic = this.dicont.getChildByName(ipicname);
\r\n
let ipostr = ipic.postr;
\r\n
if(npicstr!=ipostr){\r
\n
isuc = false;
\r\n
break;
\r\n
}
\r\n
}
\r\n
}
\r\n\r\n
return isuc;
\r\n\r\n
}
\r\n
/**
\r\n
*
\r\n
* @param reason 1成功,2失败
\r\n
*/
\r\n
private gameover(reason:number) {\r
\n
this.ingame = false;
\r\n
this.ticker&&clearInterval(this.ticker);
\r\n\r\n
let ntime = Date.now();
\r\n
let gametime = ntime - this.startime;
\r\n
engine.globalEvent.dispatchEvent('pictures-game-over', {\r
\n
reason:reason,
\r\n
time: this.passtime,
\r\n
number:this.movesteps,
\r\n
gametime:gametime
\r\n
});
\r\n
}
\r\n\r\n
}
\r\n
"
,
"/**
\r\n
* Created by rockyl on 2020-01-09.
\r\n
*/
\r\n\r\n
import GameView from
\"
./GameView
\"
;
\r\n
import { injectProps } from
\"
../props
\"
;
\r\n\r\n\r\n
export class GameWrapper extends engine.Container {\r
\n\t
// private _status;
\r\n\t
private _gameView: GameView;
\r\n\r\n\r\n\r\n\r\n\r\n\t
constructor() {\r
\n\t\t
super();
\r\n\r\n\t\t
//创建实例
\r\n\t\t
this._gameView = new GameView();
\r\n\t\t
this.addChild(this._gameView);
\r\n\r\n\t\t
engine.globalEvent.addEventListener('pictures-initgame', this.initgame, this);
\r\n\t\t
engine.globalEvent.addEventListener('pictures-start', this.start, this);
\r\n\t\t
engine.globalEvent.addEventListener('pictures-luanxu', this.luanxu, this);
\r\n\t\t
engine.globalEvent.addEventListener('pictures-pause', this.pause, this);
\r\n\t\t
engine.globalEvent.addEventListener('pictures-resume', this.resume, this);
\r\n\t
}
\r\n\t
initgame(event: engine.Event) {\r
\n\t\t
injectProps(event.data);
\r\n\r\n\t\t
// this._status = 1;
\r\n\r\n\t\t
this._gameView.initgame();
\r\n\t
}
\r\n\t
start(event: engine.Event) {\r
\n\t\t
injectProps(event.data);
\r\n\r\n\t\t
// this._status = 1;
\r\n\r\n\t\t
this._gameView.start();
\r\n\t
}
\r\n\t
luanxu()
{
\r\n\t\tthis._gameView.luanxu();\r\n\t
}
\r\n\t
pause(event: engine.Event)
{
\r\n\t\t\r\n\t\tthis._gameView.pause();\r\n\t}\r\n\tresume(event:engine.Event){\r\n\t\tthis._gameView.resume();\r\n\t}\r\n
}
\r\n
"
,
"/**
\r\n
* Created by rockyl on 2019-11-20.
\r\n
*/
\r\n\r\n
import
{
GameWrapper
}
from
\"
./game/GameWrapper
\"
;
\r\n
import {injectProps, prepareProps} from
\"
./props
\"
;
\r\n\r\n
export default function (props) {\r
\n\t
prepareProps();
\r\n\t
injectProps(props);
\r\n\r\n\t
let instance = new GameWrapper();
\r\n\t\r\n\t
return instance;
\r\n
}
\r\n
"
],
"names"
:
[
"__extends"
],
"mappings"
:
"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"
}
\ No newline at end of file
{
"version"
:
3
,
"file"
:
"index.js"
,
"sources"
:
[
"src/custom/pintu/src/props.ts"
,
"src/custom/pintu/src/game/utils.ts"
,
"src/custom/pintu/src/game/Tool.ts"
,
"src/custom/pintu/src/game/qietu.ts"
,
"src/custom/pintu/src/game/GameView.ts"
,
"src/custom/pintu/src/game/GameWrapper.ts"
,
"src/custom/pintu/src/index.ts"
],
"sourcesContent"
:
[
"/**
\r\n
* Created by rockyl on 2020-01-21.
\r\n
*/
\r\n\r\n
export let props: any = {};
\r\n\r\n
export function prepareProps() {\r
\n\t
let metaProps = getProps();
\r\n\r\n\t
engine.injectProp(props, metaProps);
\r\n
}
\r\n\r\n
export function injectProps(p) {\r
\n\t
engine.injectProp(props, p);
\r\n
}
\r\n
"
,
"/**
\r\n
* Created by rockyl on 2020-01-21.
\r\n
*/
\r\n\r\n
export function getTexture(uuid) {\r
\n\t
return engine.Texture.from(getAssetByUUID(uuid).uuid);
\r\n
}
\r\n\r\n
export function getTextureByName(name) {\r
\n\t
return getTexture(engine.getAssetByName(name).uuid);
\r\n
}
\r\n\r\n
export function playSound(name) {\r
\n\t
engine.playSound(engine.getAssetByName(name).uuid, {keep: true});
\r\n
}
\r\n
export function createSvga(name, anchorName?) {\r
\n\t
let inst = new svga.Svga();
\r\n\t
inst.source = 'asset://' + engine.getAssetByName(name).uuid;
\r\n\t
return inst;
\r\n
}
\r\n\r\n
export async function loadImageByUrl(url){\r
\n\t
// console.log('loadImageByUrl----------:',url);
\r\n\t
try{\r
\n\t\t
// console.log(
\"
尝试加载44
\"
);
\r\n\t\t
return new Promise((resolve) => {\r
\n\t\t\t
let t1 = setTimeout(()=>{\r
\n\t\t\t\t
return resolve(null);
\r\n\t\t\t
},2000);
\r\n\r\n\t\t\t
if (engine.TextureCache[url])
{
\r\n\t\t\t\tclearTimeout(t1);\r\n\t\t\t\tresolve(engine.TextureCache[url])\r\n\t\t\t
}
else {\r
\n\t\t\t\t
var t = engine.Texture.from(url);
\r\n\t\t\t\t
t.addEventListener(
\"
loaded
\"
, () => { clearTimeout(t1);resolve(t) });
\r\n\t\t\t
}
\r\n\t\t
})
\r\n\t
}catch(e){\r
\n\t\t
return null;
\r\n\t
}
\r\n
}"
,
"export default class Tool{\r
\n
static picPool:Array<engine.Container> = new Array();
\r\n
static getOnePic(){\r
\n
if(this.picPool.length>0){\r
\n
return this.picPool.shift();
\r\n
}else{\r
\n
let ipic = new engine.Container();
\r\n
\r\n
let isprite = new engine.ScrollView();
\r\n
isprite.name =
\"
iscrollv
\"
;
\r\n
let nsp = new engine.Sprite();
\r\n
nsp.name =
\"
isprite
\"
;
\r\n
nsp.texture
\r\n\r\n
isprite.addChild(nsp);
\r\n\r\n
ipic.addChild(isprite);
\r\n\r\n
isprite.mouseEnabled = false;
\r\n
nsp.mouseEnabled = false;
\r\n\r\n
return ipic;
\r\n
}
\r\n
}
\r\n\r\n
static repushToPool(icont:engine.Container){\r
\n
this.picPool.push(icont);
\r\n
}
\r\n
}"
,
"import { props } from
\"
../props
\"
;
\r\n
import { loadImageByUrl, getTextureByName ,getTexture} from
\"
./utils
\"
;
\r\n
import qietu from
\"
./qietu
\"
;
\r\n
import Tool from
\"
./Tool
\"
;
\r\n
const urls = [];
\r\n
const picMap = {};
\r\n
const posMap = {};
\r\n
export default async(url:any,type1:number, rows:number, cols:number,parent:engine.Container) => {\r
\n
try{\r
\n
let t:engine.Texture;
\r\n
if(type1==1){\r
\n
t = url;
\r\n
}else if(type1==2){\r
\n
let t1 = await loadImageByUrl(url);// as engine.Texture;
\r\n
if(t1){\r
\n
t = t1 as engine.Texture;
\r\n
}
\r\n
}else if(type1==3){\r
\n
t = await getTextureByName(
\"
testimg
\"
) as engine.Texture;
\r\n
}
\r\n
if(!t){\r
\n
return qietu(
\"
testimg
\"
,3,rows,cols,parent);
\r\n
}
\r\n
\r\n
let setimgwid = 612;
\r\n
let mwid1 = setimgwid/rows;
\r\n
let mhei1 = setimgwid/cols;
\r\n\r\n
// let mwid = t.width;
\r\n
// let mhei = t.height;
\r\n
// if(mwid<10||mhei<10){\r
\n
// await new Promise(res=>{\r
\n
// setTimeout(function(){\r
\n
// res();
\r\n
// },200);
\r\n
// })
\r\n
// return qietu(t,1,rows,cols,parent);
\r\n
// }
\r\n
// if(mwid>mhei){\r
\n
// if(mhei<setimgwid){\r
\n
// mwid = mwid*setimgwid/mhei;
\r\n
// mhei = setimgwid;
\r\n
// }
\r\n
// }else{\r
\n
// if(mwid<setimgwid){\r
\n
// mhei = mhei*setimgwid/mwid;
\r\n
// mwid = setimgwid;
\r\n
// }
\r\n
// }
\r\n\r\n
let picarr = {};
\r\n
let picnames = [];
\r\n\r\n
let chax;
\r\n
let chay;
\r\n
let startlix = 0;
\r\n
let addlix = 1/rows;
\r\n
let startliy = 0;
\r\n
let addliy = 1/cols;
\r\n\r\n
let twid1 = setimgwid;
\r\n
let thei1 = setimgwid;
\r\n
// if(mwid>mhei){\r
\n
// chax = (mwid-mhei)/2;
\r\n
// startlix = chax/mwid;
\r\n
// addlix = (mhei/cols)/mwid;
\r\n\r\n
// startliy = 0;
\r\n
// addliy = 1/rows;
\r\n\r\n
// twid1 = mwid*setimgwid/mhei;
\r\n
// thei1 = setimgwid;
\r\n
// }else{\r
\n
// startlix = 0;
\r\n
// addlix = 1/cols;
\r\n\r\n
// chay = (mhei-mwid)/2;
\r\n
// startliy = chay/mhei;
\r\n
// addliy = (mwid/rows)/mhei;
\r\n\r\n
// thei1 = mhei*setimgwid/mwid;
\r\n
// twid1 = setimgwid;
\r\n
// }
\r\n
\r\n
// console.log(
\"
切图准备
\"
,startlix,addlix,startliy,addliy,mwid,mhei);
\r\n
// let txt1 = new engine.Label();
\r\n
// txt1.fillColor =
\"
red
\"
;
\r\n
// txt1.size = 24;
\r\n
// txt1.text = startlix.toFixed(2)+
\"
;
\"
+addlix.toFixed(2)+
\"
;
\"
+startliy.toFixed(2)+
\"
;
\"
+addliy.toFixed(2)+
\"
;
\"
+mwid.toFixed(2)+
\"
;
\"
+mhei.toFixed(2)+
\"
;
\"\r\n
// parent.addChild(txt1);
\r\n
// txt1.y = -100;
\r\n
for(let r=0;r<rows;r++){\r
\n
let startx = startlix+addlix*r;
\r\n
let endx = startx + addlix;
\r\n
for(let c=0;c<cols;c++){\r
\n
let starty = startliy+addliy*c;
\r\n
let endy = starty+addliy;
\r\n\r\n
// let uvs = new Float32Array([
\r\n
// starty,
\r\n
// startx,
\r\n
// endy,
\r\n
// startx,
\r\n
// endy,
\r\n
// endx,
\r\n
// starty,
\r\n
// endx
\r\n
// ])
\r\n
//方案1
\r\n
// let isprite = new engine.Sprite(t);
\r\n
// isprite.uvs = uvs;
\r\n\r\n
//方案2
\r\n
let nsprite = Tool.getOnePic();
\r\n
let isprite = nsprite.getChildByName(
\"
iscrollv
\"
);
\r\n
let nsp = isprite.getChildByName(
\"
isprite
\"
);
\r\n
nsp.texture = t;
\r\n\r\n
nsp.width = twid1;
\r\n
nsp.height = thei1;
\r\n\r\n
// let nsprite = new engine.Container();
\r\n\r\n
// let isprite = new engine.ScrollView();
\r\n
// let nsp = new engine.Sprite(t);
\r\n
// isprite.addChild(nsp);
\r\n
// nsp.width = twid1;
\r\n
// nsp.height = thei1;
\r\n\r\n
// isprite.mouseEnabled = false;
\r\n
// isprite.mouseChildren = false;
\r\n
nsp.x = -starty*twid1;
\r\n
nsp.y = -startx*thei1;
\r\n\r\n
isprite.width = mwid1;
\r\n
isprite.height = mhei1;
\r\n\r\n
// nsprite.addChild(isprite);
\r\n
nsprite.width = mwid1;
\r\n
nsprite.height = mhei1;
\r\n\r\n
let ispritename =
\"
pic_
\"
+c+
\"
_
\"
+r;
\r\n
nsprite.name = ispritename;
\r\n
picarr[ispritename] = nsprite;
\r\n
picnames.push(ispritename);
\r\n
}
\r\n
}
\r\n
return {\r
\n
res:true,
\r\n
picarr:picarr,
\r\n
mwid:mwid1,
\r\n
mhei:mhei1,
\r\n
picnames:picnames
\r\n
};
\r\n
}catch(e){\r
\n
//获取那图失败
\r\n\r\n
// return {\r
\n
// res:false
\r\n
// };
\r\n
await new Promise(res=>{\r
\n
setTimeout(function(){\r
\n
res();
\r\n
},200);
\r\n
})
\r\n
return qietu(
\"
testimg
\"
,3,rows,cols,parent);
\r\n
}
\r\n
};
\r\n
"
,
"/**
\r\n
* Created by rockyl on 2018/8/16.
\r\n
*/
\r\n\r\n
import { props } from
\"
../props
\"
;
\r\n
import qietu from
\"
./qietu
\"
;
\r\n
import { getTexture, loadImageByUrl,getTextureByName } from
\"
./utils
\"
;
\r\n
import ObjectPool = engine.ObjectPool;
\r\n
import Tool from
\"
./Tool
\"
;
\r\n\r\n
export default class GameView extends engine.Container {\r
\n
rows:number;
\r\n
cols:number;
\r\n\r\n
passtime:number;
\r\n
gametime:number;
\r\n
showtime:number;
\r\n\r\n
lastframetime:number;
\r\n\r\n
ingame:boolean = false;
\r\n\r\n
ticker;
\r\n\r\n
selectimg3:engine.Image;
\r\n
selectimg4:engine.Image;
\r\n
nselectimg:engine.Image;
\r\n\r\n
selectImgArr:Array<string> = [];
\r\n
sucposData:Object = {};
\r\n\r\n
dicont:engine.Container;
\r\n
linecont:engine.Container;
\r\n
blockcont:engine.Container;
\r\n\r\n
lineShape:engine.Shape;
\r\n\r\n
mwid:number;
\r\n
mhei:number;
\r\n
picnames:Array<string>;
\r\n
picarr;
\r\n\r\n
gameUrls:Array<string> = [];
\r\n
gameTimes:Array<number> = [];
\r\n
onegamePics:Array<any> = [];
\r\n
movesteps:number = 0;
\r\n
startime:number = 0;
\r\n
constructor() {\r
\n
super();
\r\n
this.once(engine.Event.ADDED_TO_STAGE, this.initScene, this);
\r\n
}
\r\n
initScene(){\r
\n
this.lineShape = new engine.Shape();
\r\n
this.selectimg3 = new engine.Image(getTextureByName(
\"
框3
\"
));
\r\n
this.selectimg4 = new engine.Image(getTextureByName(
\"
框4
\"
));
\r\n
this.selectimg3.mouseEnabled = false;
\r\n
this.selectimg4.mouseEnabled = false;
\r\n
//底图
\r\n
this.dicont = new engine.Container();
\r\n
//线
\r\n
this.linecont = new engine.Container();
\r\n
//亮片
\r\n
this.blockcont = new engine.Container();
\r\n\r\n
this.addChild(this.dicont);
\r\n
this.addChild(this.linecont);
\r\n
this.addChild(this.blockcont);
\r\n
\r\n
this.linecont.addChild(this.lineShape);
\r\n\r\n
// console.log(
\"
拼图初始化完毕--------------
\"
);
\r\n
engine.globalEvent.dispatchEvent(
\"
pictures-time-initcomp
\"
,{});
\r\n
this.removeEventListener(engine.Event.ADDED_TO_STAGE,this.initScene,this);
\r\n\r\n
// let testsuc = new engine.Label();
\r\n
// testsuc.text =
\"
直接成功
\"
;
\r\n
// testsuc.size = 66;
\r\n
// testsuc.fillColor =
\"
red
\"
;
\r\n
// this.addChild(testsuc);
\r\n
// testsuc.y = 500;
\r\n
// testsuc.width = 300;
\r\n
// testsuc.height = 200;
\r\n
// testsuc.addEventListener(engine.MouseEvent.CLICK,this.zhijieSuc,this);
\r\n
}
\r\n
// //测试直接成功
\r\n
// zhijieSuc(){\r
\n
// this.gameover(1);
\r\n
// }
\r\n\r\n
async initgame(){\r
\n
// console.log(
\"
initgame---------
\"
);
\r\n
this.gameUrls = props.gameUrls||[
\"
https://yun.duiba.com.cn/db_games/activity/game/1596074071/resource/assets/ptimgs/28.jpg
\"
,
\"
https://yun.duiba.com.cn/db_games/activity/game/1596074071/resource/assets/ptimgs/29.jpg
\"
,
\"
https://yun.duiba.com.cn/db_games/activity/game/1596074071/resource/assets/ptimgs/30.jpg
\"
];
\r\n
this.gameTimes = props.gameTimes||[30,60,60];
\r\n
\r\n
this.onegamePics = new Array();
\r\n
for(let l=0;l<this.gameUrls.length;l++){\r
\n
let lurl = this.gameUrls[l];
\r\n
let lt = await loadImageByUrl(lurl);
\r\n
// console.log(lt);
\r\n
if(lt){\r
\n
lt = lt as engine.Texture
\r\n
}else{\r
\n
lt = null;
\r\n
}
\r\n
this.onegamePics.push(lt);
\r\n
if(this.onegamePics.length==1){//第一张图加载完毕,自动填充
\r\n
this.startfirst();
\r\n
}
\r\n
}
\r\n
this.removeSelectImg();
\r\n
}
\r\n
removeSelectImg(){\r
\n
if(this.selectimg3){\r
\n
this.blockcont.removeChild(this.selectimg3);
\r\n
}
\r\n
if(this.selectimg4){\r
\n
this.blockcont.removeChild(this.selectimg4);
\r\n
}
\r\n
}
\r\n
removeDiPics(){\r
\n
let nume = this.dicont.children.length;
\r\n
for(let i=nume-1;i>=0;i--){\r
\n
let ichild = this.dicont.getChildAt(i) as engine.Container;
\r\n
if(ichild){\r
\n
ichild.removeEventListener(engine.MouseEvent.MOUSE_DOWN,
\r\n
this.touchPic,this);
\r\n
this.dicont.removeChild(ichild);
\r\n
Tool.repushToPool(ichild);
\r\n
}
\r\n
}
\r\n
}
\r\n
async startfirst(){\r
\n
// this.dicont.removeChildren();
\r\n
this.removeDiPics();
\r\n\r\n
this.movesteps = 0;
\r\n
this.startime = Date.now();
\r\n
this.removeSelectImg();
\r\n\r\n
let actidx = 0;
\r\n
this.gametime = this.gameTimes[actidx];
\r\n
this.showtime = this.gameTimes[actidx];
\r\n
this.passtime = 0;
\r\n
engine.globalEvent.dispatchEvent(
\"
pictures-time-update
\"
,{\r
\n
time:this.showtime,
\r\n
});
\r\n
engine.globalEvent.dispatchEvent(
\"
pictures-time-passtime
\"
,{\r
\n
passtime:this.passtime
\r\n
});
\r\n
// console.log(
\"
start-----------------
\"
,actidx);
\r\n
this.rows = 3;
\r\n
this.cols = 3;
\r\n\r\n
this.nselectimg = null;
\r\n
if(this.rows==3){\r
\n
this.nselectimg = this.selectimg3;
\r\n
}
\r\n
if(this.rows==4){\r
\n
this.nselectimg = this.selectimg4;
\r\n
}
\r\n\r\n
\r\n
\r\n
this.selectImgArr = new Array();
\r\n
this.sucposData = {};
\r\n\r\n
let tex:any = this.onegamePics[actidx];
\r\n
let type1 = 1;
\r\n
if(!tex){\r
\n
tex = this.gameUrls[actidx];
\r\n
type1 = 3;
\r\n
}
\r\n
// type1 = 3;
\r\n
let result = await qietu(tex,type1,this.rows,this.cols,this.dicont);
\r\n
let res = result.res;
\r\n
if(res){\r
\n
let picarr = result.picarr;
\r\n
let mwid = result.mwid;
\r\n
let mhei = result.mhei;
\r\n
let picnames = result.picnames;
\r\n\r\n
this.mwid = mwid;
\r\n
this.mhei = mhei;
\r\n
this.picarr = picarr;
\r\n
this.picnames = picnames;
\r\n\r\n
let gap = 2;
\r\n
for(let r=0;r<this.rows;r++){\r
\n
for(let c=0;c<this.cols;c++){\r
\n
let ipicx = mwid*c+gap;
\r\n
let ipicy = mhei*r+gap;
\r\n
let npicname =
\"
pic_
\"
+c+
\"
_
\"
+r;
\r\n
let ipic = picarr[npicname];
\r\n
this.dicont.addChild(ipic);
\r\n
ipic.x = ipicx;
\r\n
ipic.y = ipicy;
\r\n
}
\r\n
}
\r\n
//框线
\r\n
this.lineShape.clear();
\r\n
this.lineShape.beginStroke(0x0069df,4,engine.LINE_CAP.BUTT,engine.LINE_JOIN.BEVEL,100);
\r\n\r\n
this.lineShape.moveTo(0+gap,0+gap);
\r\n
this.lineShape.lineTo(mhei*this.cols+gap,0+gap);
\r\n
this.lineShape.lineTo(mhei*this.cols+gap,mwid*this.rows+gap);
\r\n
this.lineShape.lineTo(0+gap,mwid*this.rows+gap);
\r\n
this.lineShape.lineTo(0+gap,0+gap);
\r\n\r\n
for(let rl=1;rl<this.rows;rl++){\r
\n
this.lineShape.moveTo(0+gap,rl*mhei+gap);
\r\n
this.lineShape.lineTo(mwid*this.cols+gap,rl*mhei+gap);
\r\n
}
\r\n
for(let cl=1;cl<this.cols;cl++){\r
\n
this.lineShape.moveTo(cl*mwid+gap,0+gap);
\r\n
this.lineShape.lineTo(cl*mwid+gap,this.rows*mhei+gap);
\r\n
}
\r\n
this.lineShape.endStroke();
\r\n
\r\n
engine.globalEvent.dispatchEvent(
\"
pictures-load-complete
\"
);
\r\n
this.ticker&&clearInterval(this.ticker);
\r\n
this.ticker = setInterval(this.update, 10);
\r\n
}else{\r
\n
console.error(
\"
图片处理失败
\"
);
\r\n
}
\r\n
}
\r\n
async start() {\r
\n
\r\n
// this.dicont.removeChildren();
\r\n
this.removeDiPics();
\r\n
this.movesteps = 0;
\r\n
this.startime = Date.now();
\r\n
this.removeSelectImg();
\r\n\r\n
let actidx = props.actidx;
\r\n
this.gametime = this.gameTimes[actidx];
\r\n
this.showtime = this.gameTimes[actidx];
\r\n
this.passtime = 0;
\r\n
engine.globalEvent.dispatchEvent(
\"
pictures-time-update
\"
,{\r
\n
time:this.showtime,
\r\n
});
\r\n
engine.globalEvent.dispatchEvent(
\"
pictures-time-passtime
\"
,{\r
\n
passtime:this.passtime
\r\n
});
\r\n
this.rows = props.rows;
\r\n
this.cols = props.cols;
\r\n\r\n
this.nselectimg = null;
\r\n
if(this.rows==3){\r
\n
this.nselectimg = this.selectimg3;
\r\n
}
\r\n
if(this.rows==4){\r
\n
this.nselectimg = this.selectimg4;
\r\n
}
\r\n\r\n
\r\n
\r\n
this.selectImgArr = new Array();
\r\n
this.sucposData = {};
\r\n\r\n
let tex:any = this.onegamePics[actidx];
\r\n
let type1 = 1;
\r\n
if(!tex){\r
\n
tex = this.gameUrls[actidx];
\r\n
type1 = 3;
\r\n
}
\r\n
let result = await qietu(tex,type1,this.rows,this.cols,this.dicont);
\r\n
let res = result.res;
\r\n
if(res){\r
\n
let picarr = result.picarr;
\r\n
let mwid = result.mwid;
\r\n
let mhei = result.mhei;
\r\n
let picnames = result.picnames;
\r\n\r\n
this.mwid = mwid;
\r\n
this.mhei = mhei;
\r\n
this.picarr = picarr;
\r\n
this.picnames = picnames;
\r\n\r\n
let gap = 2;
\r\n
for(let r=0;r<this.rows;r++){\r
\n
for(let c=0;c<this.cols;c++){\r
\n
let ipicx = mwid*c+gap;
\r\n
let ipicy = mhei*r+gap;
\r\n
let npicname =
\"
pic_
\"
+c+
\"
_
\"
+r;
\r\n\r\n
// this.sucposData[npicname] = r+
\"
_
\"
+c;
\r\n\r\n
// let selidx = Math.floor(Math.random()*picnames.length);
\r\n
// let ipicname:string = picnames[selidx];
\r\n
// if(r==c&&r!=this.rows-1){\r
\n
// while(ipicname==npicname){\r
\n
// selidx = Math.floor(Math.random()*picnames.length);
\r\n
// ipicname = picnames[selidx];
\r\n
// }
\r\n
// }
\r\n
let ipic = picarr[npicname];
\r\n
// picnames.splice(selidx,1);
\r\n
this.dicont.addChild(ipic);
\r\n
ipic.x = ipicx;
\r\n
ipic.y = ipicy;
\r\n
// ipic[
\"
postr
\"
] = r+
\"
_
\"
+c;
\r\n\r\n
// ipic.addEventListener(engine.MouseEvent.MOUSE_DOWN,
\r\n
// this.touchPic,this);
\r\n
}
\r\n
}
\r\n
//框线
\r\n
this.lineShape.clear();
\r\n
this.lineShape.beginStroke(0x0069df,4,engine.LINE_CAP.BUTT,engine.LINE_JOIN.BEVEL,100);
\r\n\r\n
this.lineShape.moveTo(0+gap,0+gap);
\r\n
this.lineShape.lineTo(mhei*this.cols+gap,0+gap);
\r\n
this.lineShape.lineTo(mhei*this.cols+gap,mwid*this.rows+gap);
\r\n
this.lineShape.lineTo(0+gap,mwid*this.rows+gap);
\r\n
this.lineShape.lineTo(0+gap,0+gap);
\r\n\r\n
for(let rl=1;rl<this.rows;rl++){\r
\n
this.lineShape.moveTo(0+gap,rl*mhei+gap);
\r\n
this.lineShape.lineTo(mwid*this.cols+gap,rl*mhei+gap);
\r\n
}
\r\n
for(let cl=1;cl<this.cols;cl++){\r
\n
this.lineShape.moveTo(cl*mwid+gap,0+gap);
\r\n
this.lineShape.lineTo(cl*mwid+gap,this.rows*mhei+gap);
\r\n
}
\r\n
this.lineShape.endStroke();
\r\n
\r\n
this.ticker&&clearInterval(this.ticker);
\r\n
this.ticker = setInterval(this.update, 10);
\r\n
}else{\r
\n
console.error(
\"
图片处理失败
\"
);
\r\n
}
\r\n
}
\r\n
luanxu(){\r
\n
let gap = 2;
\r\n
for(let r=0;r<this.rows;r++){\r
\n
for(let c=0;c<this.cols;c++){\r
\n
let ipicx = this.mwid*c+gap;
\r\n
let ipicy = this.mhei*r+gap;
\r\n
let npicname =
\"
pic_
\"
+c+
\"
_
\"
+r;
\r\n\r\n
this.sucposData[npicname] = r+
\"
_
\"
+c;
\r\n\r\n
let selidx = Math.floor(Math.random()*this.picnames.length);
\r\n
let ipicname:string = this.picnames[selidx];
\r\n
if(r==c&&r!=this.rows-1){\r
\n
while(ipicname==npicname){\r
\n
selidx = Math.floor(Math.random()*this.picnames.length);
\r\n
ipicname = this.picnames[selidx];
\r\n
}
\r\n
}
\r\n
let ipic = this.picarr[ipicname];
\r\n
this.picnames.splice(selidx,1);
\r\n
ipic.x = ipicx;
\r\n
ipic.y = ipicy;
\r\n
ipic[
\"
postr
\"
] = r+
\"
_
\"
+c;
\r\n\r\n
ipic.addEventListener(engine.MouseEvent.MOUSE_DOWN,
\r\n
this.touchPic,this);
\r\n
}
\r\n
}
\r\n
}
\r\n
pause(){\r
\n
this.ingame = false;
\r\n
// console.error(
\"
拼图暂停
\"
);
\r\n
}
\r\n
resume(){\r
\n
this.lastframetime = Date.now();
\r\n
this.ingame = true;
\r\n
// console.error(
\"
拼图继续
\"
);
\r\n
}
\r\n\r\n\r\n
update() {\r
\n
let ntime = Date.now();
\r\n
if(!this.lastframetime){\r
\n
this.lastframetime = ntime;
\r\n
return;
\r\n
}
\r\n
if(this.ingame){\r
\n
let passtime = (ntime - this.lastframetime)/1000;
\r\n
this.passtime += passtime;
\r\n
engine.globalEvent.dispatchEvent(
\"
pictures-time-passtime
\"
,{\r
\n
passtime:this.passtime
\r\n
});
\r\n
let showtime1 = Math.round(this.gametime - this.passtime);
\r\n
// console.log(passtime,this.passtime,this.gametime,this.showtime);
\r\n
if(this.showtime!=showtime1){\r
\n
this.showtime = showtime1;
\r\n
if(this.showtime<=0){\r
\n
this.showtime = 0;
\r\n
this.gameover(2);
\r\n
}
\r\n
// console.log(
\"
倒计时
\"
,this.showtime);
\r\n
engine.globalEvent.dispatchEvent(
\"
pictures-time-update
\"
,{\r
\n
time:this.showtime
\r\n
});
\r\n
}
\r\n
}
\r\n
this.lastframetime = ntime;
\r\n
}
\r\n\r\n
touchPic(e:engine.MouseEvent){\r
\n
if(!this.ingame){\r
\n
return;
\r\n
}
\r\n
// console.log(e.target.name);
\r\n
let selectname = e.target.name;
\r\n
let spx = e.target.x;
\r\n
let spy = e.target.y;
\r\n
let gap = 2;
\r\n
if(this.selectImgArr.length==0){\r
\n
if(this.nselectimg){\r
\n
this.blockcont.addChild(this.nselectimg);
\r\n
this.nselectimg.x = spx-gap;
\r\n
this.nselectimg.y = spy-gap;
\r\n
}
\r\n
this.selectImgArr.push(selectname);
\r\n
}else if(this.selectImgArr.length==1){\r
\n
if(selectname==this.selectImgArr[0]){\r
\n
if(this.nselectimg){\r
\n
this.blockcont.removeChild(this.nselectimg);
\r\n
}
\r\n
this.selectImgArr = new Array();
\r\n
return;
\r\n
}else{\r
\n
this.selectImgArr.push(selectname);
\r\n
this.changeImgPos();
\r\n
}
\r\n
}
\r\n
}
\r\n
changeImgPos(){\r
\n
let img1name = this.selectImgArr[0];
\r\n
let img2name = this.selectImgArr[1];
\r\n\r\n
let img1 = this.dicont.getChildByName(img1name);
\r\n
let img2 = this.dicont.getChildByName(img2name);
\r\n\r\n
let imgpos1x = img1.x;
\r\n
let imgpos1y = img1.y;
\r\n
let imgpos2x = img2.x;
\r\n
let imgpos2y = img2.y;
\r\n\r\n
let imgpostr1 = img1.postr;
\r\n
let imgpostr2 = img2.postr;
\r\n\r\n
img1.x = imgpos2x;
\r\n
img1.y = imgpos2y;
\r\n
img1.postr = imgpostr2;
\r\n\r\n
img2.x = imgpos1x;
\r\n
img2.y = imgpos1y;
\r\n
img2.postr = imgpostr1;
\r\n\r\n
this.selectImgArr = new Array();
\r\n
\r\n
this.movesteps += 1;
\r\n\r\n
if(this.nselectimg){\r
\n
this.blockcont.removeChild(this.nselectimg);
\r\n
}
\r\n
let isuc = this.checkSuccess();
\r\n
if(isuc){\r
\n
// console.error(
\"
成功过关
\"
);
\r\n
this.gameover(1);
\r\n
}
\r\n
}
\r\n
checkSuccess(){\r
\n
let isuc:boolean = true;
\r\n
for(let r=0;r<this.rows;r++){\r
\n
for(let c=0;c<this.cols;c++){\r
\n
let ipicname =
\"
pic_
\"
+c+
\"
_
\"
+r;
\r\n
let npicstr = r+
\"
_
\"
+c;
\r\n
let ipic = this.dicont.getChildByName(ipicname);
\r\n
let ipostr = ipic.postr;
\r\n
if(npicstr!=ipostr){\r
\n
isuc = false;
\r\n
break;
\r\n
}
\r\n
}
\r\n
}
\r\n\r\n
return isuc;
\r\n\r\n
}
\r\n
/**
\r\n
*
\r\n
* @param reason 1成功,2失败
\r\n
*/
\r\n
private gameover(reason:number) {\r
\n
this.ingame = false;
\r\n
this.ticker&&clearInterval(this.ticker);
\r\n\r\n
let ntime = Date.now();
\r\n
let gametime = ntime - this.startime;
\r\n
engine.globalEvent.dispatchEvent('pictures-game-over', {\r
\n
reason:reason,
\r\n
time: this.passtime,
\r\n
number:this.movesteps,
\r\n
gametime:gametime
\r\n
});
\r\n
}
\r\n\r\n
}
\r\n
"
,
"/**
\r\n
* Created by rockyl on 2020-01-09.
\r\n
*/
\r\n\r\n
import GameView from
\"
./GameView
\"
;
\r\n
import { injectProps } from
\"
../props
\"
;
\r\n\r\n\r\n
export class GameWrapper extends engine.Container {\r
\n\t
// private _status;
\r\n\t
private _gameView: GameView;
\r\n\r\n\r\n\r\n\r\n\r\n\t
constructor() {\r
\n\t\t
super();
\r\n\r\n\t\t
//创建实例
\r\n\t\t
this._gameView = new GameView();
\r\n\t\t
this.addChild(this._gameView);
\r\n\r\n\t\t
engine.globalEvent.addEventListener('pictures-initgame', this.initgame, this);
\r\n\t\t
engine.globalEvent.addEventListener('pictures-start', this.start, this);
\r\n\t\t
engine.globalEvent.addEventListener('pictures-luanxu', this.luanxu, this);
\r\n\t\t
engine.globalEvent.addEventListener('pictures-pause', this.pause, this);
\r\n\t\t
engine.globalEvent.addEventListener('pictures-resume', this.resume, this);
\r\n\t
}
\r\n\t
initgame(event: engine.Event) {\r
\n\t\t
injectProps(event.data);
\r\n\r\n\t\t
// this._status = 1;
\r\n\r\n\t\t
this._gameView.initgame();
\r\n\t
}
\r\n\t
start(event: engine.Event) {\r
\n\t\t
injectProps(event.data);
\r\n\r\n\t\t
// this._status = 1;
\r\n\r\n\t\t
this._gameView.start();
\r\n\t
}
\r\n\t
luanxu()
{
\r\n\t\tthis._gameView.luanxu();\r\n\t
}
\r\n\t
pause(event: engine.Event)
{
\r\n\t\t\r\n\t\tthis._gameView.pause();\r\n\t}\r\n\tresume(event:engine.Event){\r\n\t\tthis._gameView.resume();\r\n\t}\r\n
}
\r\n
"
,
"/**
\r\n
* Created by rockyl on 2019-11-20.
\r\n
*/
\r\n\r\n
import
{
GameWrapper
}
from
\"
./game/GameWrapper
\"
;
\r\n
import {injectProps, prepareProps} from
\"
./props
\"
;
\r\n\r\n
export default function (props) {\r
\n\t
prepareProps();
\r\n\t
injectProps(props);
\r\n\r\n\t
let instance = new GameWrapper();
\r\n\t\r\n\t
return instance;
\r\n
}
\r\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;;;UCVe,UAAU,CAAC,IAAI;KAC9B,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;CACvD,CAAC;AAED,UAAgB,gBAAgB,CAAC,IAAI;KACpC,OAAO,UAAU,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;CACrD,CAAC;AAED,UASsB,cAAc,CAAC,GAAG;;;aAEvC,IAAG;iBAEF,WAAO,IAAI,OAAO,CAAC,UAAC,OAAO;yBAC1B,IAAI,EAAE,GAAG,UAAU,CAAC;6BACnB,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;0BACrB,EAAC,IAAI,CAAC,CAAC;yBAER,IAAI,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE;6BAC7B,YAAY,CAAC,EAAE,CAAC,CAAC;6BACjB,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAA;0BACjC;8BAAM;6BACN,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;6BACjC,CAAC,CAAC,gBAAgB,CAAC,QAAQ,EAAE,cAAQ,YAAY,CAAC,EAAE,CAAC,CAAC,CAAA,OAAO,CAAC,CAAC,CAAC,CAAA,EAAE,CAAC,CAAC;0BACpE;sBACD,CAAC,EAAA;cACF;aAAA,OAAM,CAAC,EAAC;iBACR,WAAO,IAAI,EAAC;cACZ;;;;EACD;;;CCzCD;KAAA;MA4BC;KA1BU,cAAS,GAAhB;SACI,IAAG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAC,CAAC,EAAC;aACrB,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;UAC/B;cAAI;aACD,IAAI,IAAI,GAAG,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;aAElC,IAAI,OAAO,GAAG,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;aACtC,OAAO,CAAC,IAAI,GAAG,UAAU,CAAC;aAC1B,IAAI,GAAG,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;aAC9B,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC;aACrB,GAAG,CAAC,OAAO,CAAA;aAEX,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;aAEtB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;aAEvB,OAAO,CAAC,YAAY,GAAG,KAAK,CAAC;aAC7B,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC;aAEzB,OAAO,IAAI,CAAC;UACf;MACJ;KAEM,iBAAY,GAAnB,UAAoB,KAAsB;SACtC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;MAC5B;KA1BM,YAAO,GAA2B,IAAI,KAAK,EAAE,CAAC;KA2BzD,WAAC;EA5BD,IA4BC;;;ACrBD,cAAe,UAAM,GAAO,EAAC,KAAY,EAAE,IAAW,EAAE,IAAW,EAAC,MAAuB;;;;;;iBAEnF,CAAC,SAAe,CAAC;uBAClB,KAAK,IAAE,CAAC,CAAA,EAAR,cAAQ;iBACT,CAAC,GAAG,GAAG,CAAC;;;uBACD,KAAK,IAAE,CAAC,CAAA,EAAR,cAAQ;iBACN,WAAM,cAAc,CAAC,GAAG,CAAC,EAAA;;iBAA9B,EAAE,GAAG,SAAyB;iBAClC,IAAG,EAAE,EAAC;qBACJ,CAAC,GAAG,EAAoB,CAAC;kBAC1B;;;uBACM,KAAK,IAAE,CAAC,CAAA,EAAR,cAAQ;iBACX,WAAM,gBAAgB,CAAC,SAAS,CAAC,EAAA;;iBAArC,CAAC,IAAG,SAAmD,CAAA,CAAC;;;iBAE1D,IAAG,CAAC,CAAC,EAAC;qBACJ,WAAO,KAAK,CAAC,SAAS,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,AAAO,CAAC,EAAC;kBAC5C;iBAEG,SAAS,GAAG,GAAG,CAAC;iBAChB,KAAK,GAAG,SAAS,GAAC,IAAI,CAAC;iBACvB,KAAK,GAAG,SAAS,GAAC,IAAI,CAAC;iBAwBvB,MAAM,GAAG,EAAE,CAAC;iBACZ,QAAQ,GAAG,EAAE,CAAC;iBAId,QAAQ,GAAG,CAAC,CAAC;iBACb,MAAM,GAAG,CAAC,GAAC,IAAI,CAAC;iBAChB,QAAQ,GAAG,CAAC,CAAC;iBACb,MAAM,GAAG,CAAC,GAAC,IAAI,CAAC;iBAEhB,KAAK,GAAG,SAAS,CAAC;iBAClB,KAAK,GAAG,SAAS,CAAC;iBA8BtB,KAAQ,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,IAAI,EAAC,CAAC,EAAE,EAAC;qBACjB,MAAM,GAAG,QAAQ,GAAC,MAAM,GAAC,CAAC,CAAC;qBAE/B,KAAQ,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,IAAI,EAAC,CAAC,EAAE,EAAC;yBACjB,MAAM,GAAG,QAAQ,GAAC,MAAM,GAAC,CAAC,CAAC;yBAkB3B,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;yBAC3B,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;yBAC7C,GAAG,GAAG,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;yBAC5C,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC;yBAEhB,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC;yBAClB,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC;yBAYnB,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,GAAC,KAAK,CAAC;yBACtB,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,GAAC,KAAK,CAAC;yBAEtB,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;yBACtB,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC;yBAGvB,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;yBACtB,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC;yBAEnB,WAAW,GAAG,MAAM,GAAC,CAAC,GAAC,GAAG,GAAC,CAAC,CAAC;yBACjC,OAAO,CAAC,IAAI,GAAG,WAAW,CAAC;yBAC3B,MAAM,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC;yBAC9B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;sBAC5B;kBACF;iBACD,WAAO;yBACL,GAAG,EAAC,IAAI;yBACR,MAAM,EAAC,MAAM;yBACb,IAAI,EAAC,KAAK;yBACV,IAAI,EAAC,KAAK;yBACV,QAAQ,EAAC,QAAQ;sBAClB,EAAC;;;iBAOF,WAAM,IAAI,OAAO,CAAC,UAAA,GAAG;yBACnB,UAAU,CAAC;6BACT,GAAG,EAAE,CAAC;0BACP,EAAC,GAAG,CAAC,CAAC;sBACR,CAAC,EAAA;;iBAJF,SAIE,CAAA;iBACF,WAAO,KAAK,CAAC,SAAS,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,AAAO,CAAC,EAAC;;;;MAE9C,EAAC;;;CC7JF;KAAsCA,kCAAgB;KAqCpD;SAAA,YACE,iBAAO,SAER;SA9BD,YAAM,GAAW,KAAK,CAAC;SAQvB,kBAAY,GAAiB,EAAE,CAAC;SAChC,gBAAU,GAAU,EAAE,CAAC;SAavB,cAAQ,GAAiB,EAAE,CAAC;SAC5B,eAAS,GAAiB,EAAE,CAAC;SAC7B,iBAAW,GAAc,EAAE,CAAC;SAC5B,eAAS,GAAU,CAAC,CAAC;SACrB,cAAQ,GAAU,CAAC,CAAC;SAGlB,KAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,KAAI,CAAC,SAAS,EAAE,KAAI,CAAC,CAAC;;MAC9D;KACD,4BAAS,GAAT;SACE,IAAI,CAAC,SAAS,GAAG,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;SACpC,IAAI,CAAC,UAAU,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;SAC3D,IAAI,CAAC,UAAU,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;SAC3D,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,KAAK,CAAC;SACrC,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,KAAK,CAAC;SAErC,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;SAErC,IAAI,CAAC,QAAQ,GAAG,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;SAEvC,IAAI,CAAC,SAAS,GAAG,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;SAExC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC3B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC7B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAE9B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAGvC,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,wBAAwB,EAAC,EAAE,CAAC,CAAC;SAC9D,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,EAAC,IAAI,CAAC,SAAS,EAAC,IAAI,CAAC,CAAC;MAW3E;KAMK,2BAAQ,GAAd;;;;;;yBAEE,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAE,CAAC,0FAA0F,EAAE,0FAA0F,EAAE,0FAA0F,CAAC,CAAC;yBACrT,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,IAAE,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,CAAC;yBAE7C,IAAI,CAAC,WAAW,GAAG,IAAI,KAAK,EAAE,CAAC;yBACvB,CAAC,GAAC,CAAC;;;+BAAC,CAAC,GAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAA;yBAC5B,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;yBACnB,WAAM,cAAc,CAAC,IAAI,CAAC,EAAA;;yBAA/B,EAAE,GAAG,SAA0B;yBAEnC,IAAG,EAAE,EAAC;6BACJ,EAAE,GAAG,EAAoB,CAAA;0BAC1B;8BAAI;6BACH,EAAE,GAAG,IAAI,CAAC;0BACX;yBACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;yBAC1B,IAAG,IAAI,CAAC,WAAW,CAAC,MAAM,IAAE,CAAC,EAAC;6BAC5B,IAAI,CAAC,UAAU,EAAE,CAAC;0BACnB;;;yBAZgC,CAAC,EAAE,CAAA;;;yBActC,IAAI,CAAC,eAAe,EAAE,CAAC;;;;;MACxB;KACD,kCAAe,GAAf;SACE,IAAG,IAAI,CAAC,UAAU,EAAC;aACjB,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;UAC7C;SACD,IAAG,IAAI,CAAC,UAAU,EAAC;aACjB,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;UAC7C;MACF;KACD,+BAAY,GAAZ;SACE,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;SACvC,KAAI,IAAI,CAAC,GAAC,IAAI,GAAC,CAAC,EAAC,CAAC,IAAE,CAAC,EAAC,CAAC,EAAE,EAAC;aACxB,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAqB,CAAC;aAC3D,IAAG,MAAM,EAAC;iBACR,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,EACrD,IAAI,CAAC,QAAQ,EAAC,IAAI,CAAC,CAAC;iBACtB,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;iBAChC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;cAC3B;UACF;MACF;KACK,6BAAU,GAAhB;;;;;;yBAEE,IAAI,CAAC,YAAY,EAAE,CAAC;yBAEpB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;yBACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;yBAC3B,IAAI,CAAC,eAAe,EAAE,CAAC;yBAEnB,MAAM,GAAG,CAAC,CAAC;yBACf,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;yBACvC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;yBACvC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;yBAClB,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,sBAAsB,EAAC;6BACtD,IAAI,EAAC,IAAI,CAAC,QAAQ;0BACnB,CAAC,CAAC;yBACH,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,wBAAwB,EAAC;6BACxD,QAAQ,EAAC,IAAI,CAAC,QAAQ;0BACvB,CAAC,CAAC;yBAEH,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;yBACd,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;yBAEd,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;yBACvB,IAAG,IAAI,CAAC,IAAI,IAAE,CAAC,EAAC;6BACd,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;0BACnC;yBACD,IAAG,IAAI,CAAC,IAAI,IAAE,CAAC,EAAC;6BACd,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;0BACnC;yBAID,IAAI,CAAC,YAAY,GAAG,IAAI,KAAK,EAAE,CAAC;yBAChC,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;yBAEjB,GAAG,GAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;yBACnC,KAAK,GAAG,CAAC,CAAC;yBACd,IAAG,CAAC,GAAG,EAAC;6BACN,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;6BAC5B,KAAK,GAAG,CAAC,CAAC;0BACX;yBAEY,WAAM,KAAK,CAAC,GAAG,EAAC,KAAK,EAAC,IAAI,CAAC,IAAI,EAAC,IAAI,CAAC,IAAI,EAAC,IAAI,CAAC,MAAM,CAAC,EAAA;;yBAA/D,MAAM,GAAG,SAAsD;yBAC/D,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;yBACrB,IAAG,GAAG,EAAC;6BACD,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;6BACvB,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;6BACnB,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;6BACnB,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;6BAE/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;6BACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;6BACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;6BACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;6BAErB,GAAG,GAAG,CAAC,CAAC;6BACZ,KAAQ,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,IAAI,CAAC,IAAI,EAAC,CAAC,EAAE,EAAC;iCAC1B,KAAQ,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,IAAI,CAAC,IAAI,EAAC,CAAC,EAAE,EAAC;qCACtB,KAAK,GAAG,IAAI,GAAC,CAAC,GAAC,GAAG,CAAC;qCACnB,KAAK,GAAG,IAAI,GAAC,CAAC,GAAC,GAAG,CAAC;qCACnB,QAAQ,GAAG,MAAM,GAAC,CAAC,GAAC,GAAG,GAAC,CAAC,CAAC;qCAC1B,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;qCAC5B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;qCAC3B,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC;qCACf,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC;kCAChB;8BACF;6BAED,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;6BACvB,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ,EAAC,CAAC,EAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAC,GAAG,CAAC,CAAC;6BAEvF,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,GAAC,GAAG,EAAC,CAAC,GAAC,GAAG,CAAC,CAAC;6BACnC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,GAAC,IAAI,CAAC,IAAI,GAAC,GAAG,EAAC,CAAC,GAAC,GAAG,CAAC,CAAC;6BAChD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,GAAC,IAAI,CAAC,IAAI,GAAC,GAAG,EAAC,IAAI,GAAC,IAAI,CAAC,IAAI,GAAC,GAAG,CAAC,CAAC;6BAC7D,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,GAAC,GAAG,EAAC,IAAI,GAAC,IAAI,CAAC,IAAI,GAAC,GAAG,CAAC,CAAC;6BAChD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,GAAC,GAAG,EAAC,CAAC,GAAC,GAAG,CAAC,CAAC;6BAEnC,KAAQ,EAAE,GAAC,CAAC,EAAC,EAAE,GAAC,IAAI,CAAC,IAAI,EAAC,EAAE,EAAE,EAAC;iCAC7B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,GAAC,GAAG,EAAC,EAAE,GAAC,IAAI,GAAC,GAAG,CAAC,CAAC;iCACzC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,GAAC,IAAI,CAAC,IAAI,GAAC,GAAG,EAAC,EAAE,GAAC,IAAI,GAAC,GAAG,CAAC,CAAC;8BACvD;6BACD,KAAQ,EAAE,GAAC,CAAC,EAAC,EAAE,GAAC,IAAI,CAAC,IAAI,EAAC,EAAE,EAAE,EAAC;iCAC7B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,GAAC,IAAI,GAAC,GAAG,EAAC,CAAC,GAAC,GAAG,CAAC,CAAC;iCACzC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,GAAC,IAAI,GAAC,GAAG,EAAC,IAAI,CAAC,IAAI,GAAC,IAAI,GAAC,GAAG,CAAC,CAAC;8BACvD;6BACD,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;6BAE3B,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC;6BAC3D,IAAI,CAAC,MAAM,IAAE,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;6BACxC,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;0BAC5C;8BAAI;6BACH,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;0BACzB;;;;;MACF;KACK,wBAAK,GAAX;;;;;;yBAGE,IAAI,CAAC,YAAY,EAAE,CAAC;yBACpB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;yBACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;yBAC3B,IAAI,CAAC,eAAe,EAAE,CAAC;yBAEnB,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;yBAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;yBACvC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;yBACvC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;yBAClB,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,sBAAsB,EAAC;6BACtD,IAAI,EAAC,IAAI,CAAC,QAAQ;0BACnB,CAAC,CAAC;yBACH,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,wBAAwB,EAAC;6BACxD,QAAQ,EAAC,IAAI,CAAC,QAAQ;0BACvB,CAAC,CAAC;yBACH,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;yBACvB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;yBAEvB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;yBACvB,IAAG,IAAI,CAAC,IAAI,IAAE,CAAC,EAAC;6BACd,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;0BACnC;yBACD,IAAG,IAAI,CAAC,IAAI,IAAE,CAAC,EAAC;6BACd,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;0BACnC;yBAID,IAAI,CAAC,YAAY,GAAG,IAAI,KAAK,EAAE,CAAC;yBAChC,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;yBAEjB,GAAG,GAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;yBACnC,KAAK,GAAG,CAAC,CAAC;yBACd,IAAG,CAAC,GAAG,EAAC;6BACN,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;6BAC5B,KAAK,GAAG,CAAC,CAAC;0BACX;yBACY,WAAM,KAAK,CAAC,GAAG,EAAC,KAAK,EAAC,IAAI,CAAC,IAAI,EAAC,IAAI,CAAC,IAAI,EAAC,IAAI,CAAC,MAAM,CAAC,EAAA;;yBAA/D,MAAM,GAAG,SAAsD;yBAC/D,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;yBACrB,IAAG,GAAG,EAAC;6BACD,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;6BACvB,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;6BACnB,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;6BACnB,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;6BAE/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;6BACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;6BACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;6BACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;6BAErB,GAAG,GAAG,CAAC,CAAC;6BACZ,KAAQ,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,IAAI,CAAC,IAAI,EAAC,CAAC,EAAE,EAAC;iCAC1B,KAAQ,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,IAAI,CAAC,IAAI,EAAC,CAAC,EAAE,EAAC;qCACtB,KAAK,GAAG,IAAI,GAAC,CAAC,GAAC,GAAG,CAAC;qCACnB,KAAK,GAAG,IAAI,GAAC,CAAC,GAAC,GAAG,CAAC;qCACnB,QAAQ,GAAG,MAAM,GAAC,CAAC,GAAC,GAAG,GAAC,CAAC,CAAC;qCAY1B,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;qCAE5B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;qCAC3B,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC;qCACf,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC;kCAKhB;8BACF;6BAED,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;6BACvB,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ,EAAC,CAAC,EAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAC,GAAG,CAAC,CAAC;6BAEvF,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,GAAC,GAAG,EAAC,CAAC,GAAC,GAAG,CAAC,CAAC;6BACnC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,GAAC,IAAI,CAAC,IAAI,GAAC,GAAG,EAAC,CAAC,GAAC,GAAG,CAAC,CAAC;6BAChD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,GAAC,IAAI,CAAC,IAAI,GAAC,GAAG,EAAC,IAAI,GAAC,IAAI,CAAC,IAAI,GAAC,GAAG,CAAC,CAAC;6BAC7D,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,GAAC,GAAG,EAAC,IAAI,GAAC,IAAI,CAAC,IAAI,GAAC,GAAG,CAAC,CAAC;6BAChD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,GAAC,GAAG,EAAC,CAAC,GAAC,GAAG,CAAC,CAAC;6BAEnC,KAAQ,EAAE,GAAC,CAAC,EAAC,EAAE,GAAC,IAAI,CAAC,IAAI,EAAC,EAAE,EAAE,EAAC;iCAC7B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,GAAC,GAAG,EAAC,EAAE,GAAC,IAAI,GAAC,GAAG,CAAC,CAAC;iCACzC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,GAAC,IAAI,CAAC,IAAI,GAAC,GAAG,EAAC,EAAE,GAAC,IAAI,GAAC,GAAG,CAAC,CAAC;8BACvD;6BACD,KAAQ,EAAE,GAAC,CAAC,EAAC,EAAE,GAAC,IAAI,CAAC,IAAI,EAAC,EAAE,EAAE,EAAC;iCAC7B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,GAAC,IAAI,GAAC,GAAG,EAAC,CAAC,GAAC,GAAG,CAAC,CAAC;iCACzC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,GAAC,IAAI,GAAC,GAAG,EAAC,IAAI,CAAC,IAAI,GAAC,IAAI,GAAC,GAAG,CAAC,CAAC;8BACvD;6BACD,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;6BAE3B,IAAI,CAAC,MAAM,IAAE,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;6BACxC,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;0BAC5C;8BAAI;6BACH,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;0BACzB;;;;;MACF;KACD,yBAAM,GAAN;SACE,IAAI,GAAG,GAAG,CAAC,CAAC;SACZ,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,IAAI,CAAC,IAAI,EAAC,CAAC,EAAE,EAAC;aAC1B,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,IAAI,CAAC,IAAI,EAAC,CAAC,EAAE,EAAC;iBAC1B,IAAI,KAAK,GAAG,IAAI,CAAC,IAAI,GAAC,CAAC,GAAC,GAAG,CAAC;iBAC5B,IAAI,KAAK,GAAG,IAAI,CAAC,IAAI,GAAC,CAAC,GAAC,GAAG,CAAC;iBAC5B,IAAI,QAAQ,GAAG,MAAM,GAAC,CAAC,GAAC,GAAG,GAAC,CAAC,CAAC;iBAE9B,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAC,GAAG,GAAC,CAAC,CAAC;iBAEpC,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;iBAC5D,IAAI,QAAQ,GAAU,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;iBAC5C,IAAG,CAAC,IAAE,CAAC,IAAE,CAAC,IAAE,IAAI,CAAC,IAAI,GAAC,CAAC,EAAC;qBACtB,OAAM,QAAQ,IAAE,QAAQ,EAAC;yBACvB,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;yBACxD,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;sBAClC;kBACF;iBACD,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;iBACjC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAC,CAAC,CAAC,CAAC;iBAC/B,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC;iBACf,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC;iBACf,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAC,GAAG,GAAC,CAAC,CAAC;iBAExB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,EAChD,IAAI,CAAC,QAAQ,EAAC,IAAI,CAAC,CAAC;cACvB;UACF;MACF;KACD,wBAAK,GAAL;SACE,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;MAErB;KACD,yBAAM,GAAN;SACE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;SAChC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;MAEpB;KAGD,yBAAM,GAAN;SACE,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;SACvB,IAAG,CAAC,IAAI,CAAC,aAAa,EAAC;aACrB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;aAC3B,OAAO;UACR;SACD,IAAG,IAAI,CAAC,MAAM,EAAC;aACb,IAAI,QAAQ,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,IAAE,IAAI,CAAC;aACjD,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC;aAC1B,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,wBAAwB,EAAC;iBACxD,QAAQ,EAAC,IAAI,CAAC,QAAQ;cACvB,CAAC,CAAC;aACH,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;aAE1D,IAAG,IAAI,CAAC,QAAQ,IAAE,SAAS,EAAC;iBAC1B,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;iBAC1B,IAAG,IAAI,CAAC,QAAQ,IAAE,CAAC,EAAC;qBAClB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;qBAClB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;kBAClB;iBAED,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,sBAAsB,EAAC;qBACtD,IAAI,EAAC,IAAI,CAAC,QAAQ;kBACnB,CAAC,CAAC;cACJ;UACF;SACD,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;MAC5B;KAED,2BAAQ,GAAR,UAAS,CAAmB;SAC1B,IAAG,CAAC,IAAI,CAAC,MAAM,EAAC;aACd,OAAO;UACR;SAED,IAAI,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;SAC/B,IAAI,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;SACrB,IAAI,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;SACrB,IAAI,GAAG,GAAG,CAAC,CAAC;SACZ,IAAG,IAAI,CAAC,YAAY,CAAC,MAAM,IAAE,CAAC,EAAC;aAC7B,IAAG,IAAI,CAAC,UAAU,EAAC;iBACjB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;iBACzC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,GAAG,GAAC,GAAG,CAAC;iBAC5B,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,GAAG,GAAC,GAAG,CAAC;cAC7B;aACD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;UACpC;cAAK,IAAG,IAAI,CAAC,YAAY,CAAC,MAAM,IAAE,CAAC,EAAC;aACnC,IAAG,UAAU,IAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAC;iBAClC,IAAG,IAAI,CAAC,UAAU,EAAC;qBACjB,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;kBAC7C;iBACD,IAAI,CAAC,YAAY,GAAG,IAAI,KAAK,EAAE,CAAC;iBAChC,OAAO;cACR;kBAAI;iBACH,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;iBACnC,IAAI,CAAC,YAAY,EAAE,CAAC;cACrB;UACF;MACF;KACD,+BAAY,GAAZ;SACE,IAAI,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;SACpC,IAAI,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;SAEpC,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;SAChD,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;SAEhD,IAAI,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC;SACtB,IAAI,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC;SACtB,IAAI,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC;SACtB,IAAI,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC;SAEtB,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;SAC3B,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;SAE3B,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC;SAClB,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC;SAClB,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;SAEvB,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC;SAClB,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC;SAClB,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;SAEvB,IAAI,CAAC,YAAY,GAAG,IAAI,KAAK,EAAE,CAAC;SAEhC,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC;SAEpB,IAAG,IAAI,CAAC,UAAU,EAAC;aACjB,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;UAC7C;SACD,IAAI,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;SAC/B,IAAG,IAAI,EAAC;aAEN,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;UAClB;MACF;KACD,+BAAY,GAAZ;SACE,IAAI,IAAI,GAAW,IAAI,CAAC;SACxB,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,IAAI,CAAC,IAAI,EAAC,CAAC,EAAE,EAAC;aAC1B,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,IAAI,CAAC,IAAI,EAAC,CAAC,EAAE,EAAC;iBAC1B,IAAI,QAAQ,GAAG,MAAM,GAAC,CAAC,GAAC,GAAG,GAAC,CAAC,CAAC;iBAC9B,IAAI,OAAO,GAAG,CAAC,GAAC,GAAG,GAAC,CAAC,CAAC;iBACtB,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;iBAChD,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;iBACxB,IAAG,OAAO,IAAE,MAAM,EAAC;qBACjB,IAAI,GAAG,KAAK,CAAC;qBACb,MAAM;kBACP;cACF;UACF;SAED,OAAO,IAAI,CAAC;MAEb;KAKO,2BAAQ,GAAhB,UAAiB,MAAa;SAC5B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;SACpB,IAAI,CAAC,MAAM,IAAE,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAExC,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;SACvB,IAAI,QAAQ,GAAG,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC;SACrC,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,oBAAoB,EAAE;aACrD,MAAM,EAAC,MAAM;aACb,IAAI,EAAE,IAAI,CAAC,QAAQ;aACnB,MAAM,EAAC,IAAI,CAAC,SAAS;aACrB,QAAQ,EAAC,QAAQ;UAClB,CAAC,CAAC;MACJ;KAEH,eAAC;CAAD,CAAC,CA5eqC,MAAM,CAAC,SAAS,GA4erD;;;CC9eD;KAAiCA,qCAAgB;KAQhD;SAAA,YACC,iBAAO,SAWP;SARA,KAAI,CAAC,SAAS,GAAG,IAAI,QAAQ,EAAE,CAAC;SAChC,KAAI,CAAC,QAAQ,CAAC,KAAI,CAAC,SAAS,CAAC,CAAC;SAE9B,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,KAAI,CAAC,QAAQ,EAAE,KAAI,CAAC,CAAC;SAC9E,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,KAAI,CAAC,KAAK,EAAE,KAAI,CAAC,CAAC;SACxE,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,KAAI,CAAC,MAAM,EAAE,KAAI,CAAC,CAAC;SAC1E,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,KAAI,CAAC,KAAK,EAAE,KAAI,CAAC,CAAC;SACxE,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,KAAI,CAAC,MAAM,EAAE,KAAI,CAAC,CAAC;;MAC1E;KACD,8BAAQ,GAAR,UAAS,KAAmB;SAC3B,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SAIxB,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;MAC1B;KACD,2BAAK,GAAL,UAAM,KAAmB;SACxB,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SAIxB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;MACvB;KACD,4BAAM,GAAN;SACC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;MACxB;KACD,2BAAK,GAAL,UAAM,KAAmB;SAExB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;MACvB;KACD,4BAAM,GAAN,UAAO,KAAkB;SACxB,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;MACxB;KACF,kBAAC;CAAD,CAAC,CA7CgC,MAAM,CAAC,SAAS,GA6ChD;;;iBC9CwB,KAAK;KAC7B,YAAY,EAAE,CAAC;KACf,WAAW,CAAC,KAAK,CAAC,CAAC;KAEnB,IAAI,QAAQ,GAAG,IAAI,WAAW,EAAE,CAAC;KAEjC,OAAO,QAAQ,CAAC;CACjB,CAAC;;;;;;;;;"
}
\ No newline at end of file
src/custom/pintu/meta.json
View file @
f0f9841e
...
...
@@ -61,6 +61,12 @@
"url"
:
"//yun.duiba.com.cn/aurora/assets/1c384d986504d5aabfffeb5125dc67e73ce1b539.png"
,
"uuid"
:
"kuang4"
,
"ext"
:
".png"
},
{
"name"
:
"testimg"
,
"url"
:
"//yun.duiba.com.cn/aurora/assets/2628186c60c3b80013ae3178ff21a73ffbe71d43.jpg"
,
"uuid"
:
"morentu"
,
"ext"
:
".jpg"
}
],
"events"
:
{
...
...
src/custom/pintu/src/game/GameView.ts
View file @
f0f9841e
...
...
@@ -6,6 +6,7 @@ import { props } from "../props";
import
qietu
from
"./qietu"
;
import
{
getTexture
,
loadImageByUrl
,
getTextureByName
}
from
"./utils"
;
import
ObjectPool
=
engine
.
ObjectPool
;
import
Tool
from
"./Tool"
;
export
default
class
GameView
extends
engine
.
Container
{
rows
:
number
;
...
...
@@ -41,7 +42,7 @@ export default class GameView extends engine.Container {
gameUrls
:
Array
<
string
>
=
[];
gameTimes
:
Array
<
number
>
=
[];
onegamePics
:
Array
<
engine
.
Texture
>
=
[];
onegamePics
:
Array
<
any
>
=
[];
movesteps
:
number
=
0
;
startime
:
number
=
0
;
constructor
()
{
...
...
@@ -67,27 +68,46 @@ export default class GameView extends engine.Container {
this
.
linecont
.
addChild
(
this
.
lineShape
);
console
.
log
(
"拼图初始化完毕--------------"
);
//
console.log("拼图初始化完毕--------------");
engine
.
globalEvent
.
dispatchEvent
(
"pictures-time-initcomp"
,{});
this
.
removeEventListener
(
engine
.
Event
.
ADDED_TO_STAGE
,
this
.
initScene
,
this
);
}
// let testsuc = new engine.Label();
// testsuc.text = "直接成功";
// testsuc.size = 66;
// testsuc.fillColor = "red";
// this.addChild(testsuc);
// testsuc.y = 500;
// testsuc.width = 300;
// testsuc.height = 200;
// testsuc.addEventListener(engine.MouseEvent.CLICK,this.zhijieSuc,this);
}
// //测试直接成功
// zhijieSuc(){
// this.gameover(1);
// }
async
initgame
(){
console
.
log
(
"initgame---------"
);
this
.
gameUrls
=
props
.
gameUrls
;
this
.
gameTimes
=
props
.
gameTimes
;
//
console.log("initgame---------");
this
.
gameUrls
=
props
.
gameUrls
||
[
"https://yun.duiba.com.cn/db_games/activity/game/1596074071/resource/assets/ptimgs/28.jpg"
,
"https://yun.duiba.com.cn/db_games/activity/game/1596074071/resource/assets/ptimgs/29.jpg"
,
"https://yun.duiba.com.cn/db_games/activity/game/1596074071/resource/assets/ptimgs/30.jpg"
]
;
this
.
gameTimes
=
props
.
gameTimes
||
[
30
,
60
,
60
]
;
this
.
onegamePics
=
new
Array
();
for
(
let
l
=
0
;
l
<
this
.
gameUrls
.
length
;
l
++
){
let
lurl
=
this
.
gameUrls
[
l
];
let
lt
=
await
loadImageByUrl
(
lurl
)
as
engine
.
Texture
;
let
lt
=
await
loadImageByUrl
(
lurl
);
// console.log(lt);
if
(
lt
){
lt
=
lt
as
engine
.
Texture
}
else
{
lt
=
null
;
}
this
.
onegamePics
.
push
(
lt
);
if
(
this
.
onegamePics
.
length
==
1
){
//第一张图加载完毕,自动填充
this
.
startfirst
();
}
}
this
.
removeSelectImg
();
}
removeSelectImg
(){
if
(
this
.
selectimg3
){
...
...
@@ -97,8 +117,22 @@ export default class GameView extends engine.Container {
this
.
blockcont
.
removeChild
(
this
.
selectimg4
);
}
}
removeDiPics
(){
let
nume
=
this
.
dicont
.
children
.
length
;
for
(
let
i
=
nume
-
1
;
i
>=
0
;
i
--
){
let
ichild
=
this
.
dicont
.
getChildAt
(
i
)
as
engine
.
Container
;
if
(
ichild
){
ichild
.
removeEventListener
(
engine
.
MouseEvent
.
MOUSE_DOWN
,
this
.
touchPic
,
this
);
this
.
dicont
.
removeChild
(
ichild
);
Tool
.
repushToPool
(
ichild
);
}
}
}
async
startfirst
(){
this
.
dicont
.
removeChildren
();
// this.dicont.removeChildren();
this
.
removeDiPics
();
this
.
movesteps
=
0
;
this
.
startime
=
Date
.
now
();
this
.
removeSelectImg
();
...
...
@@ -113,7 +147,7 @@ export default class GameView extends engine.Container {
engine
.
globalEvent
.
dispatchEvent
(
"pictures-time-passtime"
,{
passtime
:
this
.
passtime
});
console
.
log
(
"start-----------------"
,
actidx
);
//
console.log("start-----------------",actidx);
this
.
rows
=
3
;
this
.
cols
=
3
;
...
...
@@ -134,8 +168,9 @@ export default class GameView extends engine.Container {
let
type1
=
1
;
if
(
!
tex
){
tex
=
this
.
gameUrls
[
actidx
];
type1
=
2
;
type1
=
3
;
}
// type1 = 3;
let
result
=
await
qietu
(
tex
,
type1
,
this
.
rows
,
this
.
cols
,
this
.
dicont
);
let
res
=
result
.
res
;
if
(
res
){
...
...
@@ -190,7 +225,8 @@ export default class GameView extends engine.Container {
}
async
start
()
{
this
.
dicont
.
removeChildren
();
// this.dicont.removeChildren();
this
.
removeDiPics
();
this
.
movesteps
=
0
;
this
.
startime
=
Date
.
now
();
this
.
removeSelectImg
();
...
...
@@ -225,7 +261,7 @@ export default class GameView extends engine.Container {
let
type1
=
1
;
if
(
!
tex
){
tex
=
this
.
gameUrls
[
actidx
];
type1
=
2
;
type1
=
3
;
}
let
result
=
await
qietu
(
tex
,
type1
,
this
.
rows
,
this
.
cols
,
this
.
dicont
);
let
res
=
result
.
res
;
...
...
@@ -325,12 +361,12 @@ export default class GameView extends engine.Container {
}
pause
(){
this
.
ingame
=
false
;
console
.
error
(
"拼图暂停"
);
//
console.error("拼图暂停");
}
resume
(){
this
.
lastframetime
=
Date
.
now
();
this
.
ingame
=
true
;
console
.
error
(
"拼图继续"
);
//
console.error("拼图继续");
}
...
...
@@ -424,7 +460,7 @@ export default class GameView extends engine.Container {
}
let
isuc
=
this
.
checkSuccess
();
if
(
isuc
){
console
.
error
(
"成功过关"
);
//
console.error("成功过关");
this
.
gameover
(
1
);
}
}
...
...
src/custom/pintu/src/game/Tool.ts
0 → 100644
View file @
f0f9841e
export
default
class
Tool
{
static
picPool
:
Array
<
engine
.
Container
>
=
new
Array
();
static
getOnePic
(){
if
(
this
.
picPool
.
length
>
0
){
return
this
.
picPool
.
shift
();
}
else
{
let
ipic
=
new
engine
.
Container
();
let
isprite
=
new
engine
.
ScrollView
();
isprite
.
name
=
"iscrollv"
;
let
nsp
=
new
engine
.
Sprite
();
nsp
.
name
=
"isprite"
;
nsp
.
texture
isprite
.
addChild
(
nsp
);
ipic
.
addChild
(
isprite
);
isprite
.
mouseEnabled
=
false
;
nsp
.
mouseEnabled
=
false
;
return
ipic
;
}
}
static
repushToPool
(
icont
:
engine
.
Container
){
this
.
picPool
.
push
(
icont
);
}
}
\ No newline at end of file
src/custom/pintu/src/game/qietu.ts
View file @
f0f9841e
import
{
props
}
from
"../props"
;
import
{
loadImageByUrl
}
from
"./utils"
;
import
{
loadImageByUrl
,
getTextureByName
,
getTexture
}
from
"./utils"
;
import
qietu
from
"./qietu"
;
import
Tool
from
"./Tool"
;
const
urls
=
[];
const
picMap
=
{};
const
posMap
=
{};
...
...
@@ -9,69 +10,77 @@ export default async(url:any,type1:number, rows:number, cols:number,parent:engin
let
t
:
engine
.
Texture
;
if
(
type1
==
1
){
t
=
url
;
}
else
{
t
=
await
loadImageByUrl
(
url
)
as
engine
.
Texture
;
}
else
if
(
type1
==
2
){
let
t1
=
await
loadImageByUrl
(
url
);
// as engine.Texture;
if
(
t1
){
t
=
t1
as
engine
.
Texture
;
}
}
else
if
(
type1
==
3
){
t
=
await
getTextureByName
(
"testimg"
)
as
engine
.
Texture
;
}
if
(
!
t
){
return
qietu
(
"testimg"
,
3
,
rows
,
cols
,
parent
);
}
let
setimgwid
=
612
;
let
mwid1
=
setimgwid
/
rows
;
let
mhei1
=
setimgwid
/
cols
;
let
mwid
=
t
.
width
;
let
mhei
=
t
.
height
;
if
(
mwid
<
10
||
mhei
<
10
){
await
new
Promise
(
res
=>
{
setTimeout
(
function
(){
res
();
},
200
);
})
return
qietu
(
t
,
1
,
rows
,
cols
,
parent
);
}
if
(
mwid
>
mhei
){
if
(
mhei
<
setimgwid
){
mwid
=
mwid
*
setimgwid
/
mhei
;
mhei
=
setimgwid
;
}
}
else
{
if
(
mwid
<
setimgwid
){
mhei
=
mhei
*
setimgwid
/
mwid
;
mwid
=
setimgwid
;
}
}
//
let mwid = t.width;
//
let mhei = t.height;
//
if(mwid<10||mhei<10){
//
await new Promise(res=>{
//
setTimeout(function(){
//
res();
//
},200);
//
})
//
return qietu(t,1,rows,cols,parent);
//
}
//
if(mwid>mhei){
//
if(mhei<setimgwid){
//
mwid = mwid*setimgwid/mhei;
//
mhei = setimgwid;
//
}
//
}else{
//
if(mwid<setimgwid){
//
mhei = mhei*setimgwid/mwid;
//
mwid = setimgwid;
//
}
//
}
let
picarr
=
{};
let
picnames
=
[];
let
chax
;
let
chay
;
let
startlix
;
let
addlix
;
let
startliy
;
let
addliy
;
let
twid1
;
let
thei1
;
if
(
mwid
>
mhei
){
chax
=
(
mwid
-
mhei
)
/
2
;
startlix
=
chax
/
mwid
;
addlix
=
(
mhei
/
cols
)
/
mwid
;
startliy
=
0
;
addliy
=
1
/
rows
;
twid1
=
mwid
*
setimgwid
/
mhei
;
thei1
=
setimgwid
;
}
else
{
startlix
=
0
;
addlix
=
1
/
cols
;
chay
=
(
mhei
-
mwid
)
/
2
;
startliy
=
chay
/
mhei
;
addliy
=
(
mwid
/
rows
)
/
mhei
;
thei1
=
mhei
*
setimgwid
/
mwid
;
twid1
=
setimgwid
;
}
let
startlix
=
0
;
let
addlix
=
1
/
rows
;
let
startliy
=
0
;
let
addliy
=
1
/
cols
;
let
twid1
=
setimgwid
;
let
thei1
=
setimgwid
;
//
if(mwid>mhei){
//
chax = (mwid-mhei)/2;
//
startlix = chax/mwid;
//
addlix = (mhei/cols)/mwid;
//
startliy = 0;
//
addliy = 1/rows;
//
twid1 = mwid*setimgwid/mhei;
//
thei1 = setimgwid;
//
}else{
//
startlix = 0;
//
addlix = 1/cols;
//
chay = (mhei-mwid)/2;
//
startliy = chay/mhei;
//
addliy = (mwid/rows)/mhei;
//
thei1 = mhei*setimgwid/mwid;
//
twid1 = setimgwid;
//
}
// console.log("切图准备",startlix,addlix,startliy,addliy,mwid,mhei);
// let txt1 = new engine.Label();
...
...
@@ -87,36 +96,46 @@ export default async(url:any,type1:number, rows:number, cols:number,parent:engin
let
starty
=
startliy
+
addliy
*
c
;
let
endy
=
starty
+
addliy
;
let
uvs
=
new
Float32Array
([
starty
,
startx
,
endy
,
startx
,
endy
,
endx
,
starty
,
endx
])
// let uvs = new Float32Array([
// starty,
// startx,
// endy,
// startx,
// endy,
// endx,
// starty,
// endx
// ])
//方案1
// let isprite = new engine.Sprite(t);
// isprite.uvs = uvs;
let
nsprite
=
new
engine
.
Container
();
let
isprite
=
new
engine
.
ScrollView
();
let
nsp
=
new
engine
.
Sprite
(
t
);
isprite
.
addChild
(
nsp
);
//方案2
let
nsprite
=
Tool
.
getOnePic
();
let
isprite
=
nsprite
.
getChildByName
(
"iscrollv"
);
let
nsp
=
isprite
.
getChildByName
(
"isprite"
);
nsp
.
texture
=
t
;
nsp
.
width
=
twid1
;
nsp
.
height
=
thei1
;
isprite
.
mouseEnabled
=
false
;
isprite
.
mouseChildren
=
false
;
// let nsprite = new engine.Container();
// let isprite = new engine.ScrollView();
// let nsp = new engine.Sprite(t);
// isprite.addChild(nsp);
// nsp.width = twid1;
// nsp.height = thei1;
// isprite.mouseEnabled = false;
// isprite.mouseChildren = false;
nsp
.
x
=
-
starty
*
twid1
;
nsp
.
y
=
-
startx
*
thei1
;
isprite
.
width
=
mwid1
;
isprite
.
height
=
mhei1
;
nsprite
.
addChild
(
isprite
);
//
nsprite.addChild(isprite);
nsprite
.
width
=
mwid1
;
nsprite
.
height
=
mhei1
;
...
...
@@ -134,8 +153,16 @@ export default async(url:any,type1:number, rows:number, cols:number,parent:engin
picnames
:
picnames
};
}
catch
(
e
){
return
{
res
:
false
};
//获取那图失败
// return {
// res:false
// };
await
new
Promise
(
res
=>
{
setTimeout
(
function
(){
res
();
},
200
);
})
return
qietu
(
"testimg"
,
3
,
rows
,
cols
,
parent
);
}
};
src/custom/pintu/src/game/utils.ts
View file @
f0f9841e
...
...
@@ -20,13 +20,23 @@ export function createSvga(name, anchorName?) {
}
export
async
function
loadImageByUrl
(
url
){
console
.
log
(
'loadImageByUrl----------:'
,
url
);
// console.log('loadImageByUrl----------:',url);
try
{
// console.log("尝试加载44");
return
new
Promise
((
resolve
)
=>
{
let
t1
=
setTimeout
(()
=>
{
return
resolve
(
null
);
},
2000
);
if
(
engine
.
TextureCache
[
url
])
{
clearTimeout
(
t1
);
resolve
(
engine
.
TextureCache
[
url
])
}
else
{
var
t
=
engine
.
Texture
.
from
(
url
);
t
.
addEventListener
(
"loaded"
,
()
=>
{
resolve
(
t
)
})
t
.
addEventListener
(
"loaded"
,
()
=>
{
clearTimeout
(
t1
);
resolve
(
t
)
});
}
})
}
catch
(
e
){
return
null
;
}
}
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment