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
d0b28e59
Commit
d0b28e59
authored
Jul 09, 2020
by
zjz1994
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
北京现代过桥墩,拼图
parent
5e9c78f6
Changes
19
Hide whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
651 additions
and
107 deletions
+651
-107
bjxd-game.json
dist/customs/bjxd-game.json
+20
-4
pintu.json
dist/customs/pintu.json
+19
-1
app.js
src/custom/bjxd-game/debug/app.js
+4
-1
main.js
src/custom/bjxd-game/debug/main.js
+93
-35
main.js.map
src/custom/bjxd-game/debug/main.js.map
+1
-1
meta.json
src/custom/bjxd-game/meta.json
+15
-3
GameView.ts
src/custom/bjxd-game/src/game/GameView.ts
+88
-8
GameWrapper.ts
src/custom/bjxd-game/src/game/GameWrapper.ts
+8
-0
Pier.ts
src/custom/bjxd-game/src/game/Pier.ts
+8
-8
Player.ts
src/custom/bjxd-game/src/game/Player.ts
+5
-3
Strut.ts
src/custom/bjxd-game/src/game/Strut.ts
+31
-5
meta.json
src/custom/dxbcyj-game/meta.json
+1
-1
app.js
src/custom/pintu/debug/app.js
+7
-7
main.js
src/custom/pintu/debug/main.js
+172
-22
main.js.map
src/custom/pintu/debug/main.js.map
+1
-1
meta.json
src/custom/pintu/meta.json
+18
-0
GameView.ts
src/custom/pintu/src/game/GameView.ts
+135
-6
qietu.ts
src/custom/pintu/src/game/qietu.ts
+24
-0
utils.ts
src/custom/pintu/src/game/utils.ts
+1
-1
No files found.
dist/customs/bjxd-game.json
View file @
d0b28e59
...
...
@@ -50,7 +50,7 @@
"strutUpSpeed"
:
{
"alias"
:
"撑杆上升速度(每帧上升增量,一秒60帧)"
,
"type"
:
"number"
,
"default"
:
1
0
"default"
:
3
0
},
"strutWidth"
:
{
"alias"
:
"撑杆宽度"
,
...
...
@@ -120,7 +120,7 @@
},
{
"name"
:
"yindao1"
,
"url"
:
"//yun.duiba.com.cn/aurora/assets/
a0409ec24b35198e990c61bc7f5dc66b15a5213a
.png"
,
"url"
:
"//yun.duiba.com.cn/aurora/assets/
f21d5429dbd947e66613bd6c5d864fdcfd104bd4
.png"
,
"uuid"
:
"yindao1"
,
"ext"
:
".png"
},
...
...
@@ -168,9 +168,15 @@
},
{
"name"
:
"walk"
,
"url"
:
"//yun.duiba.com.cn/aurora/assets/
a4ab1e1a2b49d140db4a0806562098a8b1619b06.svga
"
,
"url"
:
"//yun.duiba.com.cn/aurora/assets/
5b31481f8d5669213da518b156aac7cadf5d9374
"
,
"uuid"
:
"10cd1fdd-4fd8-43cf-a1c7-6ff5846d8a91"
,
"ext"
:
".svga"
},
{
"name"
:
"xiache"
,
"url"
:
"//yun.duiba.com.cn/aurora/assets/57ad75aa036c04e13abcf32c464ff5ae37419495"
,
"uuid"
:
"xiache"
,
"ext"
:
".svga"
}
],
"events"
:
{
...
...
@@ -183,11 +189,21 @@
"alias"
:
"复活"
,
"data"
:
{}
},
"bjxd-game-reset"
:
{
"alias"
:
"重置"
,
"data"
:
{}
},
"bjxd-game-change"
:
{
"alias"
:
"替换显示"
,
"data"
:
{
"index"
:
1
}
},
"bjxd-game-speed"
:
{
"alias"
:
"修改速度"
,
"data"
:
{
"speed"
:
10
}
}
},
"out"
:
{
...
...
@@ -206,5 +222,5 @@
}
},
"id"
:
"bjxd-game"
,
"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['bjxd-game'] = 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
var ObjectPool = engine.ObjectPool;
\r\n\t
var Road = (function (_super) {
\r\n\t
tslib.__extends(Road, _super);
\r\n\t
function Road() {
\r\n\t
return _super !== null && _super.apply(this, arguments) || this;
\r\n\t
}
\r\n\t
Road.prototype.setup = function () {
\r\n\t
this.lastPos = 0;
\r\n\t
this.addPier();
\r\n\t
};
\r\n\t
Road.prototype.getFristPier = function () {
\r\n\t
return this.getChildAt(0).width;
\r\n\t
};
\r\n\t
Road.prototype.getDistance = function () {
\r\n\t
var distance = [];
\r\n\t
var pier1 = this.getChildAt(0);
\r\n\t
var pier2 = this.getChildAt(1);
\r\n\t
distance.push(pier2.x - pier1.x);
\r\n\t
distance.push(pier2.width);
\r\n\t
return distance;
\r\n\t
};
\r\n\t
Road.prototype.addPier = function () {
\r\n\t
while (this.children.length < props.pierCount + 1) {
\r\n\t
var childrenNum = this.children.length;
\r\n\t
var randomPos = this.makeRandomFloat(props.pierMaxDistance, props.pierMinDistance);
\r\n\t
var pier = ObjectPool.getObject('pier');
\r\n\t
this.addChild(pier);
\r\n\t
pier.changeBg();
\r\n\t
if (childrenNum == 0) {
\r\n\t
pier.x = 0;
\r\n\t
}
\r\n\t
else {
\r\n\t
pier.x = this.lastPos + randomPos;
\r\n\t
}
\r\n\t
this.lastPos = pier.x;
\r\n\t
}
\r\n\t
};
\r\n\t
Road.prototype.changeBg = function () {
\r\n\t
var nume = this.children.length;
\r\n\t
for (var i = 0; i < nume; i++) {
\r\n\t
var ipier = this.getChildAt(i);
\r\n\t
ipier.changeBg();
\r\n\t
}
\r\n\t
};
\r\n\t
Road.prototype.moveAddPier = function () {
\r\n\t
var randomPos = this.makeRandomFloat(props.pierMaxDistance, props.pierMinDistance);
\r\n\t
var pier = ObjectPool.getObject('pier');
\r\n\t
var lastChild = this.getChildAt(this.children.length - 1);
\r\n\t
pier.x = lastChild.x + randomPos;
\r\n\t
this.addChild(pier);
\r\n\t
pier.changeBg();
\r\n\t
};
\r\n\t
Road.prototype.makeRandomFloat = function (max, min) {
\r\n\t
if (min === void 0) { min = 0; }
\r\n\t
return Math.random() * (max - min) + min;
\r\n\t
};
\r\n\t
Road.prototype.setViewport = function () {
\r\n\t
var _this = this;
\r\n\t
var tmpMovepos = this.getMovePos();
\r\n\t
this.children.forEach(function (item, index) {
\r\n\t
_this.playTween(item, index, tmpMovepos);
\r\n\t
});
\r\n\t
};
\r\n\t
Road.prototype.getMovePos = function () {
\r\n\t
var movePos = this.getChildAt(1);
\r\n\t
return movePos.x;
\r\n\t
};
\r\n\t
Road.prototype.playTween = function (item, index, tmpMovepos) {
\r\n\t
var _this = this;
\r\n\t
engine.Tween.get(item, { loop: false })
\r\n\t
.to({ x: item.x - tmpMovepos }, props.pierMoveTime)
\r\n\t
.call(function () {
\r\n\t
if (_this.getChildIndex(item) == 0) {
\r\n\t
engine.Tween.removeTweens(item);
\r\n\t
_this.removeChild(item);
\r\n\t
ObjectPool.recycleObject('pier', item);
\r\n\t
}
\r\n\t
if (index == 0) {
\r\n\t
_this.moveAddPier();
\r\n\t
}
\r\n\t
});
\r\n\t
};
\r\n\t
Road.prototype.getStartGold = function (index, isClose) {
\r\n\t
if (isClose === void 0) { isClose = true; }
\r\n\t
var tmpNode = this.getChildAt(index);
\r\n\t
var haveGold = tmpNode.haveGold;
\r\n\t
if (haveGold && isClose) {
\r\n\t
tmpNode.closeGold();
\r\n\t
}
\r\n\t
return haveGold;
\r\n\t
};
\r\n\t
Road.prototype.setGuide = function () {
\r\n\t
var tmpNode = this.getChildAt(1);
\r\n\t
if (!tmpNode.haveGold) {
\r\n\t
tmpNode.children.forEach(function (item) {
\r\n\t
if (item.name == 'gold') {
\r\n\t
item.visible = true;
\r\n\t
}
\r\n\t
});
\r\n\t
tmpNode.haveGold = true;
\r\n\t
}
\r\n\t
};
\r\n\t
return Road;
\r\n\t
}(engine.Container));
\r\n\t
//# sourceMappingURL=Road.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 getStage() {
\r\n\t
return engine.gameStage.stage;
\r\n\t
}
\r\n\t
function createSvga(name) {
\r\n\t
var inst = new svga.Svga();
\r\n\t
inst.source = engine.getAssetByName(name).uuid;
\r\n\t
return inst;
\r\n\t
}
\r\n\t
//# sourceMappingURL=utils.js.map
\n\n\t
var GuideLayer = (function (_super) {
\r\n\t
tslib.__extends(GuideLayer, _super);
\r\n\t
function GuideLayer() {
\r\n\t
var _this = _super.call(this) || this;
\r\n\t
_this.setup();
\r\n\t
return _this;
\r\n\t
}
\r\n\t
GuideLayer.prototype.setup = function () {
\r\n\t
};
\r\n\t
GuideLayer.prototype.show = function (id, options, callback) {
\r\n\t
this.visible = true;
\r\n\t
this._callBack = callback ? callback : null;
\r\n\t
if (!this.guideMask) {
\r\n\t
var _a = this.stage, width = _a.width, height = _a.height;
\r\n\t
this.guideMask = new engine.Container();
\r\n\t
this.addChild(this.guideMask);
\r\n\t
this.guideImg = new engine.Image();
\r\n\t
this.guideMask.addChild(this.guideImg);
\r\n\t
this.shouzhi = new engine.Image(getTextureByName(
\"
shouzhi
\"
));
\r\n\t
this.guideMask.addChild(this.shouzhi);
\r\n\t
}
\r\n\t
this.guideImg.texture = getTextureByName(
\"
yindao
\"
+ id);
\r\n\t
this.guideStep(id);
\r\n\t
this.once(engine.MouseEvent.CLICK, function () {
\r\n\t
this.visible = false;
\r\n\t
if (this._callBack) {
\r\n\t
this._callBack();
\r\n\t
}
\r\n\t
}, this);
\r\n\t
};
\r\n\t
GuideLayer.prototype.guideStep = function (id) {
\r\n\t
if (id == 1) {
\r\n\t
this.shouzhi.x = 244;
\r\n\t
this.shouzhi.y = 812;
\r\n\t
}
\r\n\t
if (id == 2) {
\r\n\t
this.shouzhi.x = 346;
\r\n\t
this.shouzhi.y = 1108;
\r\n\t
}
\r\n\t
};
\r\n\t
return GuideLayer;
\r\n\t
}(engine.Container));
\r\n\t
//# sourceMappingURL=GuideLayer.js.map
\n\n\t
var LoopComponent = (function (_super) {
\r\n\t
tslib.__extends(LoopComponent, _super);
\r\n\t
function LoopComponent() {
\r\n\t
var _this = _super.call(this) || this;
\r\n\t
_this.onceInfo = { width: 0, height: 0, count: 0 };
\r\n\t
_this.loopInfo = { width: 0, height: 0, count: 0 };
\r\n\t
_this.parts = [];
\r\n\t
return _this;
\r\n\t
}
\r\n\t
LoopComponent.prototype.setup = function (parts, info) {
\r\n\t
var _this = this;
\r\n\t
parts.forEach(function (item, index) {
\r\n\t
var part;
\r\n\t
if (typeof item == 'string') {
\r\n\t
if (item.length > 0) {
\r\n\t
part = new engine.Sprite(getTextureByName(item));
\r\n\t
}
\r\n\t
else {
\r\n\t
part = new engine.Sprite();
\r\n\t
}
\r\n\t
}
\r\n\t
else if (item instanceof engine.Texture) {
\r\n\t
part = new engine.Sprite(item);
\r\n\t
}
\r\n\t
else {
\r\n\t
part = item;
\r\n\t
}
\r\n\t
_this.addChild(part);
\r\n\t
_this.parts.push(part);
\r\n\t
if (index == 0) {
\r\n\t
info.width = part.width;
\r\n\t
info.height = part.height;
\r\n\t
}
\r\n\t
});
\r\n\t
info.count = parts.length;
\r\n\t
this.setViewport(0, 0);
\r\n\t
};
\r\n\t
LoopComponent.prototype.changeBg = function (changName) {
\r\n\t
this.parts.forEach(function (item, index) {
\r\n\t
if (changName && changName.length > 0) {
\r\n\t
item.texture = getTextureByName(changName);
\r\n\t
}
\r\n\t
});
\r\n\t
};
\r\n\t
LoopComponent.prototype.setupLoop = function (resArr) {
\r\n\t
this.setup(resArr, this.loopInfo);
\r\n\t
};
\r\n\t
LoopComponent.prototype.setViewport = function (x, y) {
\r\n\t
if (y === void 0) { y = 0; }
\r\n\t
var sizeField = y == 0 ? 'width' : 'height';
\r\n\t
var posField = y == 0 ? 'x' : 'y';
\r\n\t
var pos = y == 0 ? x : y;
\r\n\t
var index;
\r\n\t
var onceSize = this.onceInfo[sizeField];
\r\n\t
var onceCount = this.onceInfo.count;
\r\n\t
var loopCount = this.loopInfo.count;
\r\n\t
var loopSize = this.loopInfo[sizeField];
\r\n\t
index = onceSize == 0 ? -1 : Math.floor(pos / onceSize);
\r\n\t
if (index < 0 || index >= onceCount) {
\r\n\t
var loopIndex = Math.floor((pos - onceCount * onceSize) / this.loopInfo[sizeField]);
\r\n\t
index = onceCount + loopIndex;
\r\n\t
}
\r\n\t
var formerIndex = index < onceCount ? index : (index) % loopCount + onceCount;
\r\n\t
var latterIndex = index < onceCount ? index + 1 : (index - onceCount + 1) % loopCount + onceCount;
\r\n\t
var former = this.parts[formerIndex];
\r\n\t
var latter = this.parts[latterIndex];
\r\n\t
if (!former || !latter) {
\r\n\t
console.log(formerIndex, latterIndex);
\r\n\t
}
\r\n\t
former[posField] = -(pos - loopSize * (index < onceCount ? index : index - onceCount) - (index < onceCount ? 0 : onceCount * onceSize));
\r\n\t
latter[posField] = former.x + (index < onceCount ? onceSize : loopSize);
\r\n\t
};
\r\n\t
return LoopComponent;
\r\n\t
}(engine.Container));
\r\n\t
//# sourceMappingURL=LoopComponent.js.map
\n\n\t
var Background = (function (_super) {
\r\n\t
tslib.__extends(Background, _super);
\r\n\t
function Background() {
\r\n\t
var _this = _super !== null && _super.apply(this, arguments) || this;
\r\n\t
_this.partResHHL = ['bg1', ''];
\r\n\t
_this.partResHB = ['bg2', ''];
\r\n\t
_this.partResWH = ['bg3', ''];
\r\n\t
_this.speeds = [];
\r\n\t
_this.resArray = [];
\r\n\t
_this.frameMovePos = 0;
\r\n\t
return _this;
\r\n\t
}
\r\n\t
Background.prototype.initBg = function () {
\r\n\t
this.sumMovePos = 0;
\r\n\t
this.speeds.push(props.afterBGMoveSpeed);
\r\n\t
this.speeds.push(props.frontBGMoveSpeed);
\r\n\t
var bottomBg = new engine.Rect();
\r\n\t
bottomBg.x = 0;
\r\n\t
bottomBg.y = 0;
\r\n\t
bottomBg.width = getStage().width;
\r\n\t
bottomBg.height = 0;
\r\n\t
bottomBg.fillColor = 0x75c9f5;
\r\n\t
this.addChild(bottomBg);
\r\n\t
this.resArray.push(this.partResHHL);
\r\n\t
this.resArray.push(this.partResHB);
\r\n\t
this.resArray.push(this.partResWH);
\r\n\t
var parts = [];
\r\n\t
for (var i = 0; i < 2; i++) {
\r\n\t
var part = new LoopComponent();
\r\n\t
part.setupLoop([
\r\n\t
this.resArray[0][i],
\r\n\t
this.resArray[0][i],
\r\n\t
]);
\r\n\t
parts.push(part);
\r\n\t
this.addChild(part);
\r\n\t
}
\r\n\t
parts[1].y = 200;
\r\n\t
};
\r\n\t
Background.prototype.setViewport = function (pos) {
\r\n\t
this.needFrameSum = (props.pierMoveTime / 1000) * 60;
\r\n\t
this.frameMovePos = pos / this.needFrameSum;
\r\n\t
this.frameIndex = 0;
\r\n\t
this.addEventListener(engine.Event.ENTER_FRAME, this.frameBack, this);
\r\n\t
};
\r\n\t
Background.prototype.frameBack = function () {
\r\n\t
if (this.frameIndex < this.needFrameSum) {
\r\n\t
for (var i = 0; i < 2; i++) {
\r\n\t
var part = this.getChildAt(i + 1);
\r\n\t
var speed = this.speeds[i];
\r\n\t
var tmpPos = ((this.frameMovePos * this.frameIndex) + this.sumMovePos) * speed;
\r\n\t
part.setViewport(tmpPos);
\r\n\t
}
\r\n\t
this.frameIndex++;
\r\n\t
}
\r\n\t
else {
\r\n\t
this.sumMovePos += this.frameMovePos * this.needFrameSum;
\r\n\t
this.frameIndex = 0;
\r\n\t
this.removeEventListener(engine.Event.ENTER_FRAME, this.frameBack, this);
\r\n\t
}
\r\n\t
};
\r\n\t
Background.prototype.changeBg = function (index) {
\r\n\t
for (var i = 0; i < 2; i++) {
\r\n\t
var part = this.getChildAt(i + 1);
\r\n\t
part.changeBg(this.resArray[index][i]);
\r\n\t
if (i == 1 && index == 1) {
\r\n\t
part.y = 400;
\r\n\t
}
\r\n\t
if (i == 1 && index == 2) {
\r\n\t
part.y = 250;
\r\n\t
}
\r\n\t
}
\r\n\t
};
\r\n\t
return Background;
\r\n\t
}(engine.Container));
\r\n\t
//# sourceMappingURL=Background.js.map
\n\n\t
var Pier = (function (_super) {
\r\n\t
tslib.__extends(Pier, _super);
\r\n\t
function Pier() {
\r\n\t
var _this = _super.call(this) || this;
\r\n\t
_this.part1tex =
\"
zhuzi1
\"
;
\r\n\t
_this.part2tex =
\"
zhuzi2
\"
;
\r\n\t
_this.part3tex =
\"
zhuzi3
\"
;
\r\n\t
_this.texname =
\"\"
;
\r\n\t
_this.zhuy = 1006;
\r\n\t
_this.bmp = new engine.Sprite();
\r\n\t
_this.addChild(_this.bmp);
\r\n\t
return _this;
\r\n\t
}
\r\n\t
Pier.prototype.init = function () {
\r\n\t
var bmp = this.bmp;
\r\n\t
bmp.alpha = 1;
\r\n\t
this.changeBg();
\r\n\t
bmp.x = 0;
\r\n\t
bmp.y = this.zhuy;
\r\n\t
if (this.children.length < 2) {
\r\n\t
var gold = new engine.Sprite();
\r\n\t
gold.texture = getTextureByName('gold');
\r\n\t
gold.name = 'gold';
\r\n\t
this.addChild(gold);
\r\n\t
}
\r\n\t
this.setGoldPosX(bmp);
\r\n\t
this.setShowGold();
\r\n\t
};
\r\n\t
Pier.prototype.changeBg = function () {
\r\n\t
var texstr;
\r\n\t
if (GameView.bgIndex == 0) {
\r\n\t
texstr = this.part1tex;
\r\n\t
}
\r\n\t
else if (GameView.bgIndex == 1) {
\r\n\t
texstr = this.part2tex;
\r\n\t
}
\r\n\t
else {
\r\n\t
texstr = this.part3tex;
\r\n\t
}
\r\n\t
if (this.texname != texstr) {
\r\n\t
this.texname = texstr;
\r\n\t
this.bmp.texture = getTextureByName(texstr);
\r\n\t
}
\r\n\t
};
\r\n\t
Pier.prototype.setShowGold = function () {
\r\n\t
var nodeGold = this.getChildByName('gold');
\r\n\t
var randomWard = Math.random();
\r\n\t
nodeGold.alpha = 1;
\r\n\t
var isShow = randomWard < props.reward ? true : false;
\r\n\t
nodeGold.visible = isShow;
\r\n\t
this.haveGold = isShow;
\r\n\t
};
\r\n\t
Pier.prototype.setGoldPosX = function (bmp) {
\r\n\t
var nodeGold = this.getChildByName('gold');
\r\n\t
var pos = bmp.width / 2 - nodeGold.width / 2;
\r\n\t
nodeGold.x = pos;
\r\n\t
nodeGold.y = this.zhuy - nodeGold.height - 50;
\r\n\t
nodeGold.visible = false;
\r\n\t
};
\r\n\t
Pier.prototype.closeGold = function () {
\r\n\t
var _this = this;
\r\n\t
this.children.forEach(function (item) {
\r\n\t
if (item.name == 'gold') {
\r\n\t
item.anchorX = item.width / 2;
\r\n\t
item.anchorY = item.height / 2;
\r\n\t
engine.Tween.get(item, { loop: false })
\r\n\t
.to({ scaleX: 2.5, scaleY: 2.5 }, 200, engine.Ease.cubicOut)
\r\n\t
.to({ scaleX: 1, scaleY: 1, alpha: 0 }, 200, engine.Ease.cubicIn)
\r\n\t
.call(function () {
\r\n\t
item.visible = false;
\r\n\t
_this.haveGold = false;
\r\n\t
});
\r\n\t
}
\r\n\t
});
\r\n\t
};
\r\n\t
return Pier;
\r\n\t
}(engine.Container));
\r\n\t
//# sourceMappingURL=Pier.js.map
\n\n\t
var Player = (function (_super) {
\r\n\t
tslib.__extends(Player, _super);
\r\n\t
function Player() {
\r\n\t
var _this = _super !== null && _super.apply(this, arguments) || this;
\r\n\t
_this.playery = 845;
\r\n\t
return _this;
\r\n\t
}
\r\n\t
Player.prototype.initPlayer = function (pierWidth) {
\r\n\t
this.pierWidth = pierWidth;
\r\n\t
this._container = new engine.Container();
\r\n\t
this.addChild(this._container);
\r\n\t
this.playerNode = createSvga('walk');
\r\n\t
this._container.addChild(this.playerNode);
\r\n\t
this.playerNode.y = this.playery;
\r\n\t
this.playerNode.x = pierWidth / 2 - 80;
\r\n\t
this.playerNode.play();
\r\n\t
};
\r\n\t
Player.prototype.revive = function () {
\r\n\t
this._container.x = 0;
\r\n\t
this._container.y = 0;
\r\n\t
this.playerNode.x = this.pierWidth / 2 - 80;
\r\n\t
this.playerNode.y = this.playery;
\r\n\t
};
\r\n\t
Player.prototype.setViewport = function (pos, callBack, pierWidth) {
\r\n\t
var tmpPos = 0;
\r\n\t
var isSuccess = false;
\r\n\t
if (!pierWidth) {
\r\n\t
tmpPos = pos;
\r\n\t
isSuccess = true;
\r\n\t
}
\r\n\t
else {
\r\n\t
tmpPos = pierWidth - this.playerNode.x + pos - 60;
\r\n\t
}
\r\n\t
this.playGoTween(tmpPos, callBack, isSuccess);
\r\n\t
};
\r\n\t
Player.prototype.playGoTween = function (pos, callBack, isSuccess) {
\r\n\t
var _this = this;
\r\n\t
engine.Tween.get(this._container, { loop: false })
\r\n\t
.to({ x: pos }, props.playerMoveSpeed)
\r\n\t
.call(function () {
\r\n\t
engine.Tween.removeTweens(_this._container);
\r\n\t
if (isSuccess) {
\r\n\t
if (callBack) {
\r\n\t
callBack();
\r\n\t
}
\r\n\t
}
\r\n\t
else {
\r\n\t
_this.playDropTween(callBack);
\r\n\t
}
\r\n\t
});
\r\n\t
};
\r\n\t
Player.prototype.playDropTween = function (callBack) {
\r\n\t
var _this = this;
\r\n\t
engine.Tween.get(this._container, { loop: false })
\r\n\t
.to({ y: 2000 }, 1000)
\r\n\t
.call(function () {
\r\n\t
engine.Tween.removeTweens(_this._container);
\r\n\t
if (callBack) {
\r\n\t
callBack();
\r\n\t
}
\r\n\t
});
\r\n\t
};
\r\n\t
Player.prototype.setBackViewport = function (callBack) {
\r\n\t
var _this = this;
\r\n\t
engine.Tween.get(this._container, { loop: false })
\r\n\t
.to({ x: 0 }, props.pierMoveTime)
\r\n\t
.call(function () {
\r\n\t
engine.Tween.removeTweens(_this._container);
\r\n\t
if (callBack) {
\r\n\t
callBack();
\r\n\t
}
\r\n\t
});
\r\n\t
};
\r\n\t
return Player;
\r\n\t
}(engine.Container));
\r\n\t
//# sourceMappingURL=Player.js.map
\n\n\t
var Strut = (function (_super) {
\r\n\t
tslib.__extends(Strut, _super);
\r\n\t
function Strut() {
\r\n\t
var _this = _super !== null && _super.apply(this, arguments) || this;
\r\n\t
_this.gany = 1005;
\r\n\t
return _this;
\r\n\t
}
\r\n\t
Strut.prototype.init = function () {
\r\n\t
this._strut = new engine.Rect();
\r\n\t
this.addChild(this._strut);
\r\n\t
this._strut.width = props.strutWidth;
\r\n\t
this._strut.y = this.gany;
\r\n\t
this._strut.fillColor = props.strutColor;
\r\n\t
this._strut.rotation = 180;
\r\n\t
};
\r\n\t
Strut.prototype.onMouseDown = function (pierWidth, distance, callBack) {
\r\n\t
var paddingx = 20;
\r\n\t
if (GameView.bgIndex == 0) {
\r\n\t
paddingx = 20;
\r\n\t
}
\r\n\t
else if (GameView.bgIndex == 1) {
\r\n\t
paddingx = 30;
\r\n\t
}
\r\n\t
else if (GameView.bgIndex == 2) {
\r\n\t
paddingx = 20;
\r\n\t
}
\r\n\t
this._strut.x = pierWidth - paddingx;
\r\n\t
this._distance = distance;
\r\n\t
this._callBack = callBack;
\r\n\t
this._strut.visible = true;
\r\n\t
this.addEventListener(engine.Event.ENTER_FRAME, this.frameStrut, this);
\r\n\t
};
\r\n\t
Strut.prototype.onMouseUp = function () {
\r\n\t
var _this = this;
\r\n\t
this.removeEventListener(engine.Event.ENTER_FRAME, this.frameStrut, this);
\r\n\t
setTimeout(function () {
\r\n\t
_this.strutRotation();
\r\n\t
}, 200);
\r\n\t
};
\r\n\t
Strut.prototype.strutRotation = function () {
\r\n\t
var _this = this;
\r\n\t
engine.Tween.get(this._strut, { loop: false })
\r\n\t
.to({ rotation: 270 }, props.strutRotationSpeed)
\r\n\t
.call(function () {
\r\n\t
_this.judgeResult();
\r\n\t
engine.Tween.removeTweens(_this._strut);
\r\n\t
});
\r\n\t
};
\r\n\t
Strut.prototype.judgeResult = function () {
\r\n\t
var isSuccess = false;
\r\n\t
var paddingx = 20;
\r\n\t
var chax = 20;
\r\n\t
if (GameView.bgIndex == 0) {
\r\n\t
paddingx = 20;
\r\n\t
chax = 20;
\r\n\t
}
\r\n\t
else if (GameView.bgIndex == 1) {
\r\n\t
paddingx = 30;
\r\n\t
chax = 60;
\r\n\t
}
\r\n\t
else if (GameView.bgIndex == 2) {
\r\n\t
paddingx = 20;
\r\n\t
chax = 20;
\r\n\t
}
\r\n\t
if (this._distance[0] - this._distance[1] + chax <= this._strut.height && this._strut.height <= this._distance[0] + paddingx) {
\r\n\t
isSuccess = true;
\r\n\t
}
\r\n\t
if (this._callBack) {
\r\n\t
this._callBack(isSuccess);
\r\n\t
}
\r\n\t
};
\r\n\t
Strut.prototype.frameStrut = function () {
\r\n\t
if (this._strut.height < 1000) {
\r\n\t
this._strut.height += props.strutUpSpeed;
\r\n\t
}
\r\n\t
};
\r\n\t
Strut.prototype.rest = function () {
\r\n\t
this._strut.width = props.strutWidth;
\r\n\t
this._strut.y = this.gany;
\r\n\t
this._strut.fillColor = props.strutColor;
\r\n\t
this._strut.rotation = 180;
\r\n\t
this._strut.height = 0;
\r\n\t
this._strut.visible = false;
\r\n\t
};
\r\n\t
Strut.prototype.getStrutHeight = function () {
\r\n\t
var distance = this._strut.height > 1000 ? 1000 : this._strut.height;
\r\n\t
return distance;
\r\n\t
};
\r\n\t
return Strut;
\r\n\t
}(engine.Container));
\r\n\t
//# sourceMappingURL=Strut.js.map
\n\n\t
var ObjectPool$1 = engine.ObjectPool;
\r\n\t
var PoolName = 'pier';
\r\n\t
ObjectPool$1.registerPool(PoolName, function () {
\r\n\t
return new Pier();
\r\n\t
}, function (item, data) {
\r\n\t
item.init();
\r\n\t
});
\r\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.moveX = 0;
\r\n\t
_this.once(engine.Event.ADDED_TO_STAGE, _this.setup, _this);
\r\n\t
return _this;
\r\n\t
}
\r\n\t
GameView.prototype.setup = function () {
\r\n\t
if (this._hasSetup) {
\r\n\t
return;
\r\n\t
}
\r\n\t
this._hasSetup = true;
\r\n\t
this._backgroud = new Background();
\r\n\t
this.addChild(this._backgroud);
\r\n\t
this._backgroud.initBg();
\r\n\t
var road = this._road = new Road();
\r\n\t
this.addChild(road);
\r\n\t
road.setup();
\r\n\t
var pierWidth = this._road.getFristPier();
\r\n\t
var player = this._player = new Player();
\r\n\t
this.addChild(player);
\r\n\t
player.initPlayer(pierWidth);
\r\n\t
var strut = this._strut = new Strut();
\r\n\t
this.addChild(strut);
\r\n\t
strut.init();
\r\n\t
};
\r\n\t
GameView.prototype.start = function (guide) {
\r\n\t
return tslib.__awaiter(this, void 0, void 0, function () {
\r\n\t
var initScore;
\r\n\t
return tslib.__generator(this, function (_a) {
\r\n\t
this._isTouchLayer = true;
\r\n\t
this._sumScore = 0;
\r\n\t
this._isMouseDown = false;
\r\n\t
this._guide = guide;
\r\n\t
initScore = this._road.getStartGold(0) ? props.goldScore : 0;
\r\n\t
this.updateScore(initScore);
\r\n\t
if (this._guide == '1') {
\r\n\t
this.setGuide();
\r\n\t
}
\r\n\t
else {
\r\n\t
this.initTouch();
\r\n\t
this.registerEvent();
\r\n\t
}
\r\n\t
return [2];
\r\n\t
});
\r\n\t
});
\r\n\t
};
\r\n\t
GameView.prototype.revive = function () {
\r\n\t
console.log(
\"
复活---------
\"
);
\r\n\t
this._player.revive();
\r\n\t
this._isTouchLayer = true;
\r\n\t
this.closeStrut();
\r\n\t
};
\r\n\t
GameView.prototype.setGuide = function () {
\r\n\t
var _this = this;
\r\n\t
this._road.setGuide();
\r\n\t
var guideLayer = this.guideLayer = new GuideLayer();
\r\n\t
this.addChild(guideLayer);
\r\n\t
this.guideLayer.show(1, { x: 20, y: 650, guideText: props.guideText1 }, function () {
\r\n\t
var posX = _this._road.getMovePos();
\r\n\t
_this.guideLayer.show(2, { x: posX + 20, y: 620, guideText: props.guideText2 }, function () {
\r\n\t
_this.initTouch();
\r\n\t
_this.registerEvent();
\r\n\t
});
\r\n\t
});
\r\n\t
};
\r\n\t
GameView.prototype.initLabScore = function () {
\r\n\t
};
\r\n\t
GameView.prototype.registerEvent = function () {
\r\n\t
this._touchLayer.addEventListener(engine.MouseEvent.MOUSE_DOWN, this.onMouseDown, this);
\r\n\t
this._touchLayer.addEventListener(engine.MouseEvent.MOUSE_UP, this.onMouseUp, this);
\r\n\t
};
\r\n\t
GameView.prototype.removeListener = function () {
\r\n\t
this._touchLayer.removeEventListener(engine.MouseEvent.MOUSE_DOWN, this.onMouseDown, this);
\r\n\t
this._touchLayer.removeEventListener(engine.MouseEvent.MOUSE_UP, this.onMouseUp, this);
\r\n\t
};
\r\n\t
GameView.prototype.initTouch = function () {
\r\n\t
this._touchLayer = new engine.Rect();
\r\n\t
this.addChild(this._touchLayer);
\r\n\t
this._touchLayer.width = getStage().width;
\r\n\t
this._touchLayer.height = getStage().height;
\r\n\t
this._touchLayer.x = 0;
\r\n\t
this._touchLayer.y = 0;
\r\n\t
this._touchLayer.alpha = 0;
\r\n\t
};
\r\n\t
GameView.prototype.setScoreShow = function () {
\r\n\t
};
\r\n\t
GameView.prototype.onMouseDown = function () {
\r\n\t
if (this._isTouchLayer) {
\r\n\t
this._isMouseDown = true;
\r\n\t
this._strut.onMouseDown(this._road.getFristPier(), this._road.getDistance(), this.goCallBcak.bind(this));
\r\n\t
}
\r\n\t
};
\r\n\t
GameView.prototype.onMouseUp = function () {
\r\n\t
if (this._isTouchLayer && this._isMouseDown) {
\r\n\t
this._strut.onMouseUp();
\r\n\t
this._isMouseDown = false;
\r\n\t
this._isTouchLayer = false;
\r\n\t
}
\r\n\t
};
\r\n\t
GameView.prototype.goCallBcak = function (isSuccess) {
\r\n\t
var _this = this;
\r\n\t
if (isSuccess) {
\r\n\t
console.log('成功了');
\r\n\t
var movePos = this._road.getMovePos();
\r\n\t
if (this._road.getStartGold(1, false)) {
\r\n\t
this.updateScore(props.singleScore + props.goldScore);
\r\n\t
}
\r\n\t
else {
\r\n\t
this.updateScore(props.singleScore);
\r\n\t
}
\r\n\t
this._player.setViewport(movePos, this.complete.bind(this));
\r\n\t
}
\r\n\t
else {
\r\n\t
console.log('失败了');
\r\n\t
this._player.setViewport(this._strut.getStrutHeight(), function () {
\r\n\t
console.log('掉下去了');
\r\n\t
engine.globalEvent.dispatchEvent('bjxd-game-over', { score: _this._sumScore });
\r\n\t
}, this._road.getFristPier());
\r\n\t
}
\r\n\t
};
\r\n\t
GameView.prototype.complete = function () {
\r\n\t
var _this = this;
\r\n\t
this._road.getStartGold(1);
\r\n\t
var movePos = this._road.getMovePos();
\r\n\t
this._road.setViewport();
\r\n\t
this._backgroud.setViewport(movePos);
\r\n\t
this._player.setBackViewport(function () {
\r\n\t
_this._isTouchLayer = true;
\r\n\t
});
\r\n\t
this.closeStrut();
\r\n\t
};
\r\n\t
GameView.prototype.closeStrut = function () {
\r\n\t
this._strut.rest();
\r\n\t
};
\r\n\t
GameView.prototype.updateScore = function (score) {
\r\n\t
this._sumScore += score;
\r\n\t
console.log(
\"
新分数
\"
, this._sumScore);
\r\n\t
engine.globalEvent.dispatchEvent('bjxd-game-score', { score: this._sumScore });
\r\n\t
};
\r\n\t
GameView.prototype.getScore = function () {
\r\n\t
return this._sumScore;
\r\n\t
};
\r\n\t
GameView.prototype.changeBg = function (index) {
\r\n\t
if (GameView.bgIndex != index) {
\r\n\t
GameView.bgIndex = index;
\r\n\t
this._backgroud.changeBg(index);
\r\n\t
this._road.changeBg();
\r\n\t
}
\r\n\t
};
\r\n\t
GameView.bgIndex = 0;
\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
engine.globalEvent.addEventListener('bjxd-game-start', _this.start, _this);
\r\n\t
engine.globalEvent.addEventListener('bjxd-game-revive', _this.revive, _this);
\r\n\t
engine.globalEvent.addEventListener('bjxd-game-change', _this.change, _this);
\r\n\t
var gameView = _this._gameView = new GameView();
\r\n\t
_this.addChild(gameView);
\r\n\t
return _this;
\r\n\t
}
\r\n\t
GameWrapper.prototype.start = function (event) {
\r\n\t
this._gameView.start(event.data.guide);
\r\n\t
};
\r\n\t
GameWrapper.prototype.revive = function () {
\r\n\t
this._gameView.revive();
\r\n\t
};
\r\n\t
GameWrapper.prototype.change = function (event) {
\r\n\t
this._gameView.changeBg(event.data.index);
\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['bjxd-game'] = 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
}
\
n\n\t
var ObjectPool = engine.ObjectPool;
\r\n\t
var Road = (function (_super) {
\r\n\t
tslib.__extends(Road, _super);
\r\n\t
function Road() {
\r\n\t
return _super !== null && _super.apply(this, arguments) || this;
\r\n\t
}
\r\n\t
Road.prototype.setup = function () {
\r\n\t
this.lastPos = 0;
\r\n\t
this.addPier();
\r\n\t
};
\r\n\t
Road.prototype.getFristPier = function () {
\r\n\t
return this.getChildAt(0).width;
\r\n\t
};
\r\n\t
Road.prototype.getDistance = function () {
\r\n\t
var distance = [];
\r\n\t
var pier1 = this.getChildAt(0);
\r\n\t
var pier2 = this.getChildAt(1);
\r\n\t
distance.push(pier2.x - pier1.x);
\r\n\t
distance.push(pier2.width);
\r\n\t
return distance;
\r\n\t
};
\r\n\t
Road.prototype.addPier = function () {
\r\n\t
while (this.children.length < props.pierCount + 1) {
\r\n\t
var childrenNum = this.children.length;
\r\n\t
var randomPos = this.makeRandomFloat(props.pierMaxDistance, props.pierMinDistance);
\r\n\t
var pier = ObjectPool.getObject('pier');
\r\n\t
this.addChild(pier);
\r\n\t
pier.changeBg();
\r\n\t
if (childrenNum == 0) {
\r\n\t
pier.x = 0;
\r\n\t
}
\r\n\t
else {
\r\n\t
pier.x = this.lastPos + randomPos;
\r\n\t
}
\r\n\t
this.lastPos = pier.x;
\r\n\t
}
\r\n\t
};
\r\n\t
Road.prototype.changeBg = function () {
\r\n\t
var nume = this.children.length;
\r\n\t
for (var i = 0; i < nume; i++) {
\r\n\t
var ipier = this.getChildAt(i);
\r\n\t
ipier.changeBg();
\r\n\t
}
\r\n\t
};
\r\n\t
Road.prototype.moveAddPier = function () {
\r\n\t
var randomPos = this.makeRandomFloat(props.pierMaxDistance, props.pierMinDistance);
\r\n\t
var pier = ObjectPool.getObject('pier');
\r\n\t
var lastChild = this.getChildAt(this.children.length - 1);
\r\n\t
pier.x = lastChild.x + randomPos;
\r\n\t
this.addChild(pier);
\r\n\t
pier.changeBg();
\r\n\t
};
\r\n\t
Road.prototype.makeRandomFloat = function (max, min) {
\r\n\t
if (min === void 0) { min = 0; }
\r\n\t
return Math.random() * (max - min) + min;
\r\n\t
};
\r\n\t
Road.prototype.setViewport = function () {
\r\n\t
var _this = this;
\r\n\t
var tmpMovepos = this.getMovePos();
\r\n\t
this.children.forEach(function (item, index) {
\r\n\t
_this.playTween(item, index, tmpMovepos);
\r\n\t
});
\r\n\t
};
\r\n\t
Road.prototype.getMovePos = function () {
\r\n\t
var movePos = this.getChildAt(1);
\r\n\t
return movePos.x;
\r\n\t
};
\r\n\t
Road.prototype.playTween = function (item, index, tmpMovepos) {
\r\n\t
var _this = this;
\r\n\t
engine.Tween.get(item, { loop: false })
\r\n\t
.to({ x: item.x - tmpMovepos }, props.pierMoveTime)
\r\n\t
.call(function () {
\r\n\t
if (_this.getChildIndex(item) == 0) {
\r\n\t
engine.Tween.removeTweens(item);
\r\n\t
_this.removeChild(item);
\r\n\t
ObjectPool.recycleObject('pier', item);
\r\n\t
}
\r\n\t
if (index == 0) {
\r\n\t
_this.moveAddPier();
\r\n\t
}
\r\n\t
});
\r\n\t
};
\r\n\t
Road.prototype.getStartGold = function (index, isClose) {
\r\n\t
if (isClose === void 0) { isClose = true; }
\r\n\t
var tmpNode = this.getChildAt(index);
\r\n\t
var haveGold = tmpNode.haveGold;
\r\n\t
if (haveGold && isClose) {
\r\n\t
tmpNode.closeGold();
\r\n\t
}
\r\n\t
return haveGold;
\r\n\t
};
\r\n\t
Road.prototype.setGuide = function () {
\r\n\t
var tmpNode = this.getChildAt(1);
\r\n\t
if (!tmpNode.haveGold) {
\r\n\t
tmpNode.children.forEach(function (item) {
\r\n\t
if (item.name == 'gold') {
\r\n\t
item.visible = true;
\r\n\t
}
\r\n\t
});
\r\n\t
tmpNode.haveGold = true;
\r\n\t
}
\r\n\t
};
\r\n\t
return Road;
\r\n\t
}(engine.Container));
\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 getStage() {
\r\n\t
return engine.gameStage.stage;
\r\n\t
}
\r\n\t
function createSvga(name) {
\r\n\t
var inst = new svga.Svga();
\r\n\t
inst.source = engine.getAssetByName(name).uuid;
\r\n\t
return inst;
\r\n\t
}
\n\n\t
var GuideLayer = (function (_super) {
\r\n\t
tslib.__extends(GuideLayer, _super);
\r\n\t
function GuideLayer() {
\r\n\t
var _this = _super.call(this) || this;
\r\n\t
_this.setup();
\r\n\t
return _this;
\r\n\t
}
\r\n\t
GuideLayer.prototype.setup = function () {
\r\n\t
};
\r\n\t
GuideLayer.prototype.show = function (id, options, callback) {
\r\n\t
this.visible = true;
\r\n\t
this._callBack = callback ? callback : null;
\r\n\t
if (!this.guideMask) {
\r\n\t
var _a = this.stage, width = _a.width, height = _a.height;
\r\n\t
this.guideMask = new engine.Container();
\r\n\t
this.addChild(this.guideMask);
\r\n\t
this.guideImg = new engine.Image();
\r\n\t
this.guideMask.addChild(this.guideImg);
\r\n\t
this.shouzhi = new engine.Image(getTextureByName(
\"
shouzhi
\"
));
\r\n\t
this.guideMask.addChild(this.shouzhi);
\r\n\t
}
\r\n\t
this.guideImg.texture = getTextureByName(
\"
yindao
\"
+ id);
\r\n\t
this.guideStep(id);
\r\n\t
this.once(engine.MouseEvent.CLICK, function () {
\r\n\t
this.visible = false;
\r\n\t
if (this._callBack) {
\r\n\t
this._callBack();
\r\n\t
}
\r\n\t
}, this);
\r\n\t
};
\r\n\t
GuideLayer.prototype.guideStep = function (id) {
\r\n\t
if (id == 1) {
\r\n\t
this.shouzhi.x = 244;
\r\n\t
this.shouzhi.y = 812;
\r\n\t
}
\r\n\t
if (id == 2) {
\r\n\t
this.shouzhi.x = 346;
\r\n\t
this.shouzhi.y = 1108;
\r\n\t
}
\r\n\t
};
\r\n\t
return GuideLayer;
\r\n\t
}(engine.Container));
\n\n\t
var LoopComponent = (function (_super) {
\r\n\t
tslib.__extends(LoopComponent, _super);
\r\n\t
function LoopComponent() {
\r\n\t
var _this = _super.call(this) || this;
\r\n\t
_this.onceInfo = { width: 0, height: 0, count: 0 };
\r\n\t
_this.loopInfo = { width: 0, height: 0, count: 0 };
\r\n\t
_this.parts = [];
\r\n\t
return _this;
\r\n\t
}
\r\n\t
LoopComponent.prototype.setup = function (parts, info) {
\r\n\t
var _this = this;
\r\n\t
parts.forEach(function (item, index) {
\r\n\t
var part;
\r\n\t
if (typeof item == 'string') {
\r\n\t
if (item.length > 0) {
\r\n\t
part = new engine.Sprite(getTextureByName(item));
\r\n\t
}
\r\n\t
else {
\r\n\t
part = new engine.Sprite();
\r\n\t
}
\r\n\t
}
\r\n\t
else if (item instanceof engine.Texture) {
\r\n\t
part = new engine.Sprite(item);
\r\n\t
}
\r\n\t
else {
\r\n\t
part = item;
\r\n\t
}
\r\n\t
_this.addChild(part);
\r\n\t
_this.parts.push(part);
\r\n\t
if (index == 0) {
\r\n\t
info.width = part.width;
\r\n\t
info.height = part.height;
\r\n\t
}
\r\n\t
});
\r\n\t
info.count = parts.length;
\r\n\t
this.setViewport(0, 0);
\r\n\t
};
\r\n\t
LoopComponent.prototype.changeBg = function (changName) {
\r\n\t
this.parts.forEach(function (item, index) {
\r\n\t
if (changName && changName.length > 0) {
\r\n\t
item.texture = getTextureByName(changName);
\r\n\t
}
\r\n\t
});
\r\n\t
};
\r\n\t
LoopComponent.prototype.setupLoop = function (resArr) {
\r\n\t
this.setup(resArr, this.loopInfo);
\r\n\t
};
\r\n\t
LoopComponent.prototype.setViewport = function (x, y) {
\r\n\t
if (y === void 0) { y = 0; }
\r\n\t
var sizeField = y == 0 ? 'width' : 'height';
\r\n\t
var posField = y == 0 ? 'x' : 'y';
\r\n\t
var pos = y == 0 ? x : y;
\r\n\t
var index;
\r\n\t
var onceSize = this.onceInfo[sizeField];
\r\n\t
var onceCount = this.onceInfo.count;
\r\n\t
var loopCount = this.loopInfo.count;
\r\n\t
var loopSize = this.loopInfo[sizeField];
\r\n\t
index = onceSize == 0 ? -1 : Math.floor(pos / onceSize);
\r\n\t
if (index < 0 || index >= onceCount) {
\r\n\t
var loopIndex = Math.floor((pos - onceCount * onceSize) / this.loopInfo[sizeField]);
\r\n\t
index = onceCount + loopIndex;
\r\n\t
}
\r\n\t
var formerIndex = index < onceCount ? index : (index) % loopCount + onceCount;
\r\n\t
var latterIndex = index < onceCount ? index + 1 : (index - onceCount + 1) % loopCount + onceCount;
\r\n\t
var former = this.parts[formerIndex];
\r\n\t
var latter = this.parts[latterIndex];
\r\n\t
if (!former || !latter) {
\r\n\t
console.log(formerIndex, latterIndex);
\r\n\t
}
\r\n\t
former[posField] = -(pos - loopSize * (index < onceCount ? index : index - onceCount) - (index < onceCount ? 0 : onceCount * onceSize));
\r\n\t
latter[posField] = former.x + (index < onceCount ? onceSize : loopSize);
\r\n\t
};
\r\n\t
return LoopComponent;
\r\n\t
}(engine.Container));
\n\n\t
var Background = (function (_super) {
\r\n\t
tslib.__extends(Background, _super);
\r\n\t
function Background() {
\r\n\t
var _this = _super !== null && _super.apply(this, arguments) || this;
\r\n\t
_this.partResHHL = ['bg1', ''];
\r\n\t
_this.partResHB = ['bg2', ''];
\r\n\t
_this.partResWH = ['bg3', ''];
\r\n\t
_this.speeds = [];
\r\n\t
_this.resArray = [];
\r\n\t
_this.frameMovePos = 0;
\r\n\t
return _this;
\r\n\t
}
\r\n\t
Background.prototype.initBg = function () {
\r\n\t
this.sumMovePos = 0;
\r\n\t
this.speeds.push(props.afterBGMoveSpeed);
\r\n\t
this.speeds.push(props.frontBGMoveSpeed);
\r\n\t
var bottomBg = new engine.Rect();
\r\n\t
bottomBg.x = 0;
\r\n\t
bottomBg.y = 0;
\r\n\t
bottomBg.width = getStage().width;
\r\n\t
bottomBg.height = 0;
\r\n\t
bottomBg.fillColor = 0x75c9f5;
\r\n\t
this.addChild(bottomBg);
\r\n\t
this.resArray.push(this.partResHHL);
\r\n\t
this.resArray.push(this.partResHB);
\r\n\t
this.resArray.push(this.partResWH);
\r\n\t
var parts = [];
\r\n\t
for (var i = 0; i < 2; i++) {
\r\n\t
var part = new LoopComponent();
\r\n\t
part.setupLoop([
\r\n\t
this.resArray[0][i],
\r\n\t
this.resArray[0][i],
\r\n\t
]);
\r\n\t
parts.push(part);
\r\n\t
this.addChild(part);
\r\n\t
}
\r\n\t
parts[1].y = 200;
\r\n\t
};
\r\n\t
Background.prototype.setViewport = function (pos) {
\r\n\t
this.needFrameSum = (props.pierMoveTime / 1000) * 60;
\r\n\t
this.frameMovePos = pos / this.needFrameSum;
\r\n\t
this.frameIndex = 0;
\r\n\t
this.addEventListener(engine.Event.ENTER_FRAME, this.frameBack, this);
\r\n\t
};
\r\n\t
Background.prototype.frameBack = function () {
\r\n\t
if (this.frameIndex < this.needFrameSum) {
\r\n\t
for (var i = 0; i < 2; i++) {
\r\n\t
var part = this.getChildAt(i + 1);
\r\n\t
var speed = this.speeds[i];
\r\n\t
var tmpPos = ((this.frameMovePos * this.frameIndex) + this.sumMovePos) * speed;
\r\n\t
part.setViewport(tmpPos);
\r\n\t
}
\r\n\t
this.frameIndex++;
\r\n\t
}
\r\n\t
else {
\r\n\t
this.sumMovePos += this.frameMovePos * this.needFrameSum;
\r\n\t
this.frameIndex = 0;
\r\n\t
this.removeEventListener(engine.Event.ENTER_FRAME, this.frameBack, this);
\r\n\t
}
\r\n\t
};
\r\n\t
Background.prototype.changeBg = function (index) {
\r\n\t
for (var i = 0; i < 2; i++) {
\r\n\t
var part = this.getChildAt(i + 1);
\r\n\t
part.changeBg(this.resArray[index][i]);
\r\n\t
if (i == 1 && index == 1) {
\r\n\t
part.y = 400;
\r\n\t
}
\r\n\t
if (i == 1 && index == 2) {
\r\n\t
part.y = 250;
\r\n\t
}
\r\n\t
}
\r\n\t
};
\r\n\t
return Background;
\r\n\t
}(engine.Container));
\n\n\t
var Pier = (function (_super) {
\r\n\t
tslib.__extends(Pier, _super);
\r\n\t
function Pier() {
\r\n\t
var _this = _super.call(this) || this;
\r\n\t
_this.part1tex =
\"
zhuzi1
\"
;
\r\n\t
_this.part2tex =
\"
zhuzi2
\"
;
\r\n\t
_this.part3tex =
\"
zhuzi3
\"
;
\r\n\t
_this.texname =
\"\"
;
\r\n\t
_this.zhuy = 1006;
\r\n\t
_this.bmp = new engine.Sprite();
\r\n\t
_this.addChild(_this.bmp);
\r\n\t
return _this;
\r\n\t
}
\r\n\t
Pier.prototype.init = function () {
\r\n\t
var bmp = this.bmp;
\r\n\t
bmp.alpha = 1;
\r\n\t
this.changeBg();
\r\n\t
bmp.x = 0;
\r\n\t
bmp.y = this.zhuy;
\r\n\t
};
\r\n\t
Pier.prototype.changeBg = function () {
\r\n\t
var texstr;
\r\n\t
if (GameView.bgIndex == 0) {
\r\n\t
texstr = this.part1tex;
\r\n\t
}
\r\n\t
else if (GameView.bgIndex == 1) {
\r\n\t
texstr = this.part2tex;
\r\n\t
}
\r\n\t
else {
\r\n\t
texstr = this.part3tex;
\r\n\t
}
\r\n\t
if (this.texname != texstr) {
\r\n\t
this.texname = texstr;
\r\n\t
this.bmp.texture = getTextureByName(texstr);
\r\n\t
}
\r\n\t
};
\r\n\t
Pier.prototype.setShowGold = function () {
\r\n\t
var nodeGold = this.getChildByName('gold');
\r\n\t
var randomWard = Math.random();
\r\n\t
nodeGold.alpha = 1;
\r\n\t
var isShow = randomWard < props.reward ? true : false;
\r\n\t
nodeGold.visible = isShow;
\r\n\t
this.haveGold = isShow;
\r\n\t
};
\r\n\t
Pier.prototype.setGoldPosX = function (bmp) {
\r\n\t
var nodeGold = this.getChildByName('gold');
\r\n\t
var pos = bmp.width / 2 - nodeGold.width / 2;
\r\n\t
nodeGold.x = pos;
\r\n\t
nodeGold.y = this.zhuy - nodeGold.height - 50;
\r\n\t
nodeGold.visible = false;
\r\n\t
};
\r\n\t
Pier.prototype.closeGold = function () {
\r\n\t
var _this = this;
\r\n\t
this.children.forEach(function (item) {
\r\n\t
if (item.name == 'gold') {
\r\n\t
item.anchorX = item.width / 2;
\r\n\t
item.anchorY = item.height / 2;
\r\n\t
engine.Tween.get(item, { loop: false })
\r\n\t
.to({ scaleX: 2.5, scaleY: 2.5 }, 200, engine.Ease.cubicOut)
\r\n\t
.to({ scaleX: 1, scaleY: 1, alpha: 0 }, 200, engine.Ease.cubicIn)
\r\n\t
.call(function () {
\r\n\t
item.visible = false;
\r\n\t
_this.haveGold = false;
\r\n\t
});
\r\n\t
}
\r\n\t
});
\r\n\t
};
\r\n\t
return Pier;
\r\n\t
}(engine.Container));
\n\n\t
var Player = (function (_super) {
\r\n\t
tslib.__extends(Player, _super);
\r\n\t
function Player() {
\r\n\t
var _this = _super !== null && _super.apply(this, arguments) || this;
\r\n\t
_this.playery = 878;
\r\n\t
return _this;
\r\n\t
}
\r\n\t
Player.prototype.initPlayer = function (pierWidth) {
\r\n\t
this.pierWidth = pierWidth;
\r\n\t
this._container = new engine.Container();
\r\n\t
this.addChild(this._container);
\r\n\t
this.playerNode = createSvga('walk');
\r\n\t
this._container.addChild(this.playerNode);
\r\n\t
this.playerNode.y = this.playery;
\r\n\t
this.playerNode.x = pierWidth / 2 - 50;
\r\n\t
this.playerNode.play();
\r\n\t
this._container.visible = false;
\r\n\t
};
\r\n\t
Player.prototype.revive = function () {
\r\n\t
this._container.x = 0;
\r\n\t
this._container.y = 0;
\r\n\t
this.playerNode.x = this.pierWidth / 2 - 50;
\r\n\t
this.playerNode.y = this.playery;
\r\n\t
};
\r\n\t
Player.prototype.setViewport = function (pos, callBack, pierWidth) {
\r\n\t
var tmpPos = 0;
\r\n\t
var isSuccess = false;
\r\n\t
if (!pierWidth) {
\r\n\t
tmpPos = pos;
\r\n\t
isSuccess = true;
\r\n\t
}
\r\n\t
else {
\r\n\t
tmpPos = pierWidth - this.playerNode.x + pos - 60;
\r\n\t
}
\r\n\t
this.playGoTween(tmpPos, callBack, isSuccess);
\r\n\t
};
\r\n\t
Player.prototype.playGoTween = function (pos, callBack, isSuccess) {
\r\n\t
var _this = this;
\r\n\t
engine.Tween.get(this._container, { loop: false })
\r\n\t
.to({ x: pos }, props.playerMoveSpeed)
\r\n\t
.call(function () {
\r\n\t
engine.Tween.removeTweens(_this._container);
\r\n\t
if (isSuccess) {
\r\n\t
if (callBack) {
\r\n\t
callBack();
\r\n\t
}
\r\n\t
}
\r\n\t
else {
\r\n\t
_this.playDropTween(callBack);
\r\n\t
}
\r\n\t
});
\r\n\t
};
\r\n\t
Player.prototype.playDropTween = function (callBack) {
\r\n\t
var _this = this;
\r\n\t
engine.Tween.get(this._container, { loop: false })
\r\n\t
.to({ y: 2000 }, 1000)
\r\n\t
.call(function () {
\r\n\t
engine.Tween.removeTweens(_this._container);
\r\n\t
if (callBack) {
\r\n\t
callBack();
\r\n\t
}
\r\n\t
});
\r\n\t
};
\r\n\t
Player.prototype.setBackViewport = function (callBack) {
\r\n\t
var _this = this;
\r\n\t
engine.Tween.get(this._container, { loop: false })
\r\n\t
.to({ x: 0 }, props.pierMoveTime)
\r\n\t
.call(function () {
\r\n\t
engine.Tween.removeTweens(_this._container);
\r\n\t
if (callBack) {
\r\n\t
callBack();
\r\n\t
}
\r\n\t
});
\r\n\t
};
\r\n\t
return Player;
\r\n\t
}(engine.Container));
\n\n\t
var Strut = (function (_super) {
\r\n\t
tslib.__extends(Strut, _super);
\r\n\t
function Strut() {
\r\n\t
var _this = _super !== null && _super.apply(this, arguments) || this;
\r\n\t
_this.gany = 1005;
\r\n\t
return _this;
\r\n\t
}
\r\n\t
Strut.prototype.init = function () {
\r\n\t
this._strut = new engine.Rect();
\r\n\t
this.addChild(this._strut);
\r\n\t
this._strut.width = props.strutWidth;
\r\n\t
this._strut.y = this.gany;
\r\n\t
this._strut.fillColor = props.strutColor;
\r\n\t
this._strut.rotation = 180;
\r\n\t
};
\r\n\t
Strut.prototype.onMouseDown = function (pierWidth, distance, callBack) {
\r\n\t
var paddingx = 20;
\r\n\t
if (GameView.bgIndex == 0) {
\r\n\t
paddingx = 20;
\r\n\t
}
\r\n\t
else if (GameView.bgIndex == 1) {
\r\n\t
paddingx = 30;
\r\n\t
}
\r\n\t
else if (GameView.bgIndex == 2) {
\r\n\t
paddingx = 20;
\r\n\t
}
\r\n\t
this._strut.x = pierWidth - paddingx;
\r\n\t
this._distance = distance;
\r\n\t
this._callBack = callBack;
\r\n\t
this._strut.visible = true;
\r\n\t
this.addEventListener(engine.Event.ENTER_FRAME, this.frameStrut, this);
\r\n\t
};
\r\n\t
Strut.prototype.onMouseUp = function () {
\r\n\t
var _this = this;
\r\n\t
this.removeEventListener(engine.Event.ENTER_FRAME, this.frameStrut, this);
\r\n\t
setTimeout(function () {
\r\n\t
_this.strutRotation();
\r\n\t
}, 200);
\r\n\t
};
\r\n\t
Strut.prototype.strutRotation = function () {
\r\n\t
var _this = this;
\r\n\t
engine.Tween.get(this._strut, { loop: false })
\r\n\t
.to({ rotation: 270 }, props.strutRotationSpeed)
\r\n\t
.call(function () {
\r\n\t
_this.judgeResult();
\r\n\t
engine.Tween.removeTweens(_this._strut);
\r\n\t
});
\r\n\t
};
\r\n\t
Strut.prototype.judgeResult = function () {
\r\n\t
var isSuccess = false;
\r\n\t
var paddingx = 20;
\r\n\t
var chax = 20;
\r\n\t
if (GameView.bgIndex == 0) {
\r\n\t
paddingx = 20;
\r\n\t
chax = 20;
\r\n\t
}
\r\n\t
else if (GameView.bgIndex == 1) {
\r\n\t
paddingx = 3;
\r\n\t
chax = 39;
\r\n\t
}
\r\n\t
else if (GameView.bgIndex == 2) {
\r\n\t
paddingx = 20;
\r\n\t
chax = 20;
\r\n\t
}
\r\n\t
var mindis = this._distance[0] - this._distance[1] + chax;
\r\n\t
var maxdis = this._distance[0] + paddingx;
\r\n\t
if (mindis <= this._strut.height && this._strut.height <= maxdis) {
\r\n\t
isSuccess = true;
\r\n\t
}
\r\n\t
if (this._callBack) {
\r\n\t
this._callBack(isSuccess);
\r\n\t
}
\r\n\t
};
\r\n\t
Strut.prototype.frameStrut = function () {
\r\n\t
var maxdis = 700;
\r\n\t
if (this._strut.height < maxdis) {
\r\n\t
if (this._strut.height + GameView.speed > maxdis) {
\r\n\t
this._strut.height = maxdis;
\r\n\t
}
\r\n\t
else {
\r\n\t
this._strut.height += GameView.speed;
\r\n\t
}
\r\n\t
}
\r\n\t
};
\r\n\t
Strut.prototype.rest = function () {
\r\n\t
this._strut.width = props.strutWidth;
\r\n\t
this._strut.y = this.gany;
\r\n\t
this._strut.fillColor = props.strutColor;
\r\n\t
this._strut.rotation = 180;
\r\n\t
this._strut.height = 0;
\r\n\t
this._strut.visible = false;
\r\n\t
};
\r\n\t
Strut.prototype.getStrutHeight = function () {
\r\n\t
var distance = this._strut.height > 1000 ? 1000 : this._strut.height;
\r\n\t
return distance;
\r\n\t
};
\r\n\t
return Strut;
\r\n\t
}(engine.Container));
\n\n\t
var ObjectPool$1 = engine.ObjectPool;
\r\n\t
var PoolName = 'pier';
\r\n\t
ObjectPool$1.registerPool(PoolName, function () {
\r\n\t
return new Pier();
\r\n\t
}, function (item, data) {
\r\n\t
item.init();
\r\n\t
});
\r\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.moveX = 0;
\r\n\t
_this.playery = 878;
\r\n\t
_this.inani = true;
\r\n\t
_this.once(engine.Event.ADDED_TO_STAGE, _this.setup, _this);
\r\n\t
return _this;
\r\n\t
}
\r\n\t
GameView.prototype.setup = function () {
\r\n\t
if (this._hasSetup) {
\r\n\t
return;
\r\n\t
}
\r\n\t
this._hasSetup = true;
\r\n\t
this._backgroud = new Background();
\r\n\t
this.addChild(this._backgroud);
\r\n\t
this._backgroud.initBg();
\r\n\t
var road = this._road = new Road();
\r\n\t
this.addChild(road);
\r\n\t
road.setup();
\r\n\t
var pierWidth = this._road.getFristPier();
\r\n\t
var player = this._player = new Player();
\r\n\t
this.addChild(player);
\r\n\t
player.initPlayer(pierWidth);
\r\n\t
this.pierWidth = pierWidth;
\r\n\t
this.xiacheNode = createSvga(
\"
xiache
\"
);
\r\n\t
this.addChild(this.xiacheNode);
\r\n\t
this.xiacheNode.y = this.playery - 35;
\r\n\t
this.xiacheNode.x = this.pierWidth / 2 - 100;
\r\n\t
this.xiacheNode.stop();
\r\n\t
this.xiacheNode.name =
\"
xiacheanm
\"
;
\r\n\t
console.log(
\"
下车动画帧数
\"
, this.xiacheNode.totalFrames, this.xiacheNode);
\r\n\t
this.xiacheNode.visible = false;
\r\n\t
var strut = this._strut = new Strut();
\r\n\t
this.addChild(strut);
\r\n\t
strut.init();
\r\n\t
};
\r\n\t
GameView.prototype.playComp = function () {
\r\n\t
var curframe = this.xiacheNode.currentFrame;
\r\n\t
if (curframe == this.xiacheNode.totalFrames) {
\r\n\t
this.inani = false;
\r\n\t
this.xiacheNode.stop();
\r\n\t
this.xiacheNode.removeEventListener(engine.Event.ENTER_FRAME, this.playComp, this);
\r\n\t
for (var i = 0; i < 15; i++) {
\r\n\t
if (i < 12) {
\r\n\t
this.xiacheNode.getChildAt(i).visible = false;
\r\n\t
}
\r\n\t
}
\r\n\t
this._player._container.visible = true;
\r\n\t
}
\r\n\t
};
\r\n\t
GameView.prototype.start = function (guide) {
\r\n\t
return tslib.__awaiter(this, void 0, void 0, function () {
\r\n\t
var initScore;
\r\n\t
return tslib.__generator(this, function (_a) {
\r\n\t
this._isTouchLayer = true;
\r\n\t
this._sumScore = 0;
\r\n\t
this._isMouseDown = false;
\r\n\t
this._guide = guide;
\r\n\t
this._player.revive();
\r\n\t
this.closeStrut();
\r\n\t
initScore = 0;
\r\n\t
this.updateScore(initScore);
\r\n\t
if (this.xiacheNode.x < this.pierWidth / 2 - 105) {
\r\n\t
this.startAnm();
\r\n\t
}
\r\n\t
if (this._guide == '1') {
\r\n\t
this.setGuide();
\r\n\t
}
\r\n\t
else {
\r\n\t
this.initTouch();
\r\n\t
this.registerEvent();
\r\n\t
}
\r\n\t
return [2];
\r\n\t
});
\r\n\t
});
\r\n\t
};
\r\n\t
GameView.prototype.startAnm = function () {
\r\n\t
this.inani = true;
\r\n\t
this.xiacheNode.visible = true;
\r\n\t
for (var i = 0; i < 15; i++) {
\r\n\t
if (i < 12) {
\r\n\t
this.xiacheNode.getChildAt(i).visible = true;
\r\n\t
}
\r\n\t
}
\r\n\t
this.xiacheNode.x = this.pierWidth / 2 - 100;
\r\n\t
this._player._container.visible = false;
\r\n\t
this.xiacheNode.gotoAndPlay(1);
\r\n\t
this.xiacheNode.addEventListener(engine.Event.ENTER_FRAME, this.playComp, this);
\r\n\t
};
\r\n\t
GameView.prototype.reset = function () {
\r\n\t
this._sumScore = 0;
\r\n\t
engine.globalEvent.dispatchEvent('bjxd-game-score', { score: this._sumScore });
\r\n\t
this._player.revive();
\r\n\t
this.closeStrut();
\r\n\t
this.changeBg(GameView.bgIndex);
\r\n\t
this.startAnm();
\r\n\t
};
\r\n\t
GameView.prototype.revive = function () {
\r\n\t
this._player.revive();
\r\n\t
this.startAnm();
\r\n\t
this._isTouchLayer = true;
\r\n\t
this.closeStrut();
\r\n\t
};
\r\n\t
GameView.prototype.setGuide = function () {
\r\n\t
var _this = this;
\r\n\t
this._road.setGuide();
\r\n\t
var guideLayer = this.guideLayer = new GuideLayer();
\r\n\t
this.addChild(guideLayer);
\r\n\t
this.guideLayer.show(1, { x: 20, y: 650, guideText: props.guideText1 }, function () {
\r\n\t
var posX = _this._road.getMovePos();
\r\n\t
_this.guideLayer.show(2, { x: posX + 20, y: 620, guideText: props.guideText2 }, function () {
\r\n\t
_this.initTouch();
\r\n\t
_this.registerEvent();
\r\n\t
});
\r\n\t
});
\r\n\t
};
\r\n\t
GameView.prototype.initLabScore = function () {
\r\n\t
};
\r\n\t
GameView.prototype.registerEvent = function () {
\r\n\t
this._touchLayer.addEventListener(engine.MouseEvent.MOUSE_DOWN, this.onMouseDown, this);
\r\n\t
this._touchLayer.addEventListener(engine.MouseEvent.MOUSE_UP, this.onMouseUp, this);
\r\n\t
};
\r\n\t
GameView.prototype.removeListener = function () {
\r\n\t
this._touchLayer.removeEventListener(engine.MouseEvent.MOUSE_DOWN, this.onMouseDown, this);
\r\n\t
this._touchLayer.removeEventListener(engine.MouseEvent.MOUSE_UP, this.onMouseUp, this);
\r\n\t
};
\r\n\t
GameView.prototype.initTouch = function () {
\r\n\t
this._touchLayer = new engine.Rect();
\r\n\t
this.addChild(this._touchLayer);
\r\n\t
this._touchLayer.width = getStage().width;
\r\n\t
this._touchLayer.height = getStage().height;
\r\n\t
this._touchLayer.x = 0;
\r\n\t
this._touchLayer.y = 0;
\r\n\t
this._touchLayer.alpha = 0;
\r\n\t
};
\r\n\t
GameView.prototype.setScoreShow = function () {
\r\n\t
};
\r\n\t
GameView.prototype.onMouseDown = function () {
\r\n\t
if (this._isTouchLayer && !this.inani) {
\r\n\t
this._isMouseDown = true;
\r\n\t
this._strut.onMouseDown(this._road.getFristPier(), this._road.getDistance(), this.goCallBcak.bind(this));
\r\n\t
}
\r\n\t
};
\r\n\t
GameView.prototype.onMouseUp = function () {
\r\n\t
if (this._isTouchLayer && this._isMouseDown) {
\r\n\t
this._strut.onMouseUp();
\r\n\t
this._isMouseDown = false;
\r\n\t
this._isTouchLayer = false;
\r\n\t
}
\r\n\t
};
\r\n\t
GameView.prototype.goCallBcak = function (isSuccess) {
\r\n\t
var _this = this;
\r\n\t
if (isSuccess) {
\r\n\t
var movePos = this._road.getMovePos();
\r\n\t
if (this._road.getStartGold(1, false)) {
\r\n\t
this.updateScore(props.singleScore + props.goldScore);
\r\n\t
}
\r\n\t
else {
\r\n\t
this.updateScore(props.singleScore);
\r\n\t
}
\r\n\t
this._player.setViewport(movePos, this.complete.bind(this));
\r\n\t
}
\r\n\t
else {
\r\n\t
this._player.setViewport(this._strut.getStrutHeight(), function () {
\r\n\t
engine.globalEvent.dispatchEvent('bjxd-game-over', { score: _this._sumScore });
\r\n\t
}, this._road.getFristPier());
\r\n\t
}
\r\n\t
};
\r\n\t
GameView.prototype.complete = function () {
\r\n\t
var _this = this;
\r\n\t
this._road.getStartGold(1);
\r\n\t
var movePos = this._road.getMovePos();
\r\n\t
this._road.setViewport();
\r\n\t
this._backgroud.setViewport(movePos);
\r\n\t
this._player.setBackViewport(function () {
\r\n\t
_this._isTouchLayer = true;
\r\n\t
});
\r\n\t
var carx = this.xiacheNode.x;
\r\n\t
if (carx > -200) {
\r\n\t
carx -= movePos;
\r\n\t
engine.Tween.get(this.xiacheNode, { loop: false })
\r\n\t
.to({
\r\n\t
x: carx
\r\n\t
}, props.pierMoveTime);
\r\n\t
}
\r\n\t
this.closeStrut();
\r\n\t
};
\r\n\t
GameView.prototype.closeStrut = function () {
\r\n\t
this._strut.rest();
\r\n\t
};
\r\n\t
GameView.prototype.updateScore = function (score) {
\r\n\t
this._sumScore += score;
\r\n\t
engine.globalEvent.dispatchEvent('bjxd-game-score', { score: this._sumScore });
\r\n\t
};
\r\n\t
GameView.prototype.getScore = function () {
\r\n\t
return this._sumScore;
\r\n\t
};
\r\n\t
GameView.prototype.changeBg = function (index) {
\r\n\t
if (GameView.bgIndex != index) {
\r\n\t
GameView.bgIndex = index;
\r\n\t
this._backgroud.changeBg(index);
\r\n\t
this._road.changeBg();
\r\n\t
}
\r\n\t
};
\r\n\t
GameView.prototype.changeSpeed = function (speed) {
\r\n\t
if (GameView.speed != speed) {
\r\n\t
GameView.speed = speed;
\r\n\t
}
\r\n\t
};
\r\n\t
GameView.bgIndex = 0;
\r\n\t
GameView.speed = 10;
\r\n\t
return GameView;
\r\n\t
}(engine.Container));
\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
engine.globalEvent.addEventListener('bjxd-game-start', _this.start, _this);
\r\n\t
engine.globalEvent.addEventListener('bjxd-game-reset', _this.reset, _this);
\r\n\t
engine.globalEvent.addEventListener('bjxd-game-revive', _this.revive, _this);
\r\n\t
engine.globalEvent.addEventListener('bjxd-game-change', _this.change, _this);
\r\n\t
engine.globalEvent.addEventListener('bjxd-game-speed', _this.speed, _this);
\r\n\t
var gameView = _this._gameView = new GameView();
\r\n\t
_this.addChild(gameView);
\r\n\t
return _this;
\r\n\t
}
\r\n\t
GameWrapper.prototype.start = function (event) {
\r\n\t
this._gameView.start(event.data.guide);
\r\n\t
};
\r\n\t
GameWrapper.prototype.reset = function () {
\r\n\t
this._gameView.reset();
\r\n\t
};
\r\n\t
GameWrapper.prototype.revive = function () {
\r\n\t
this._gameView.revive();
\r\n\t
};
\r\n\t
GameWrapper.prototype.change = function (event) {
\r\n\t
this._gameView.changeBg(event.data.index);
\r\n\t
};
\r\n\t
GameWrapper.prototype.speed = function (event) {
\r\n\t
this._gameView.changeSpeed(event.data.speed);
\r\n\t
};
\r\n\t
return GameWrapper;
\r\n\t
}(engine.Container));
\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
}
\n\n\t
return index;
\n\n
})));
\n
"
}
dist/customs/pintu.json
View file @
d0b28e59
...
...
@@ -106,9 +106,27 @@
"data"
:
{
"reason"
:
"结束(1:成功,2失败)"
}
},
"pictures-load-complete"
:
{
"alias"
:
"图片加载完毕"
,
"data"
:
{
"reason"
:
"结束(1:成功,2失败)"
}
},
"pictures-time-passtime"
:
{
"alias"
:
"倒计时进度条"
,
"data"
:
{
"passtime"
:
0
}
},
"pictures-time-initcomp"
:
{
"alias"
:
"倒计时进度条"
,
"data"
:
{
"passtime"
:
0
}
}
}
},
"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
console.log('loadImageByUrl----------:', url);
\r\n\t
return 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
//# 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, r, startx, endx, c, starty, endy, uvs, isprite, 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, 4, , 5]);
\r\n\t
t = void 0;
\r\n\t
if (!(type1 == 1)) return [3, 1];
\r\n\t
console.log(
\"
直接使用已加载的tex
\"
);
\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
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
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
}
\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
}
\r\n\t
for (r = 0; r < rows; r++) {
\r\n\t
startx = startlix + addlix * r;
\r\n\t
endx = startx + addlix;
\r\n\t
for (c = 0; c < cols; c++) {
\r\n\t
starty = startliy + addliy * c;
\r\n\t
endy = starty + addliy;
\r\n\t
uvs = new Float32Array([
\r\n\t
starty,
\r\n\t
startx,
\r\n\t
endy,
\r\n\t
startx,
\r\n\t
endy,
\r\n\t
endx,
\r\n\t
starty,
\r\n\t
endx
\r\n\t
]);
\r\n\t
isprite = new engine.Sprite(t);
\r\n\t
isprite.uvs = uvs;
\r\n\t
isprite.width = mwid1;
\r\n\t
isprite.height = mhei1;
\r\n\t
ispritename =
\"
pic_
\"
+ c +
\"
_
\"
+ r;
\r\n\t
isprite.name = ispritename;
\r\n\t
picarr[ispritename] = isprite;
\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 4:
\r\n\t
e_1 = _a.sent();
\r\n\t
console.error(
\"
图片加载失败
\"
, e_1);
\r\n\t
console.log(url, rows, cols);
\r\n\t
return [2, {
\r\n\t
res: false
\r\n\t
}];
\r\n\t
case 5: 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.onegamePics = [];
\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.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
};
\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.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
_a.label = 3;
\r\n\t
case 3:
\r\n\t
l++;
\r\n\t
return [3, 1];
\r\n\t
case 4: 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
actidx = props.actidx;
\r\n\t
this.gametime = props.gametime;
\r\n\t
this.showtime = props.gametime;
\r\n\t
console.log(
\"
start-----------------
\"
, actidx);
\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.passtime = 0;
\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 = setInterval(this.update, 20);
\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.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
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
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
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
engine.globalEvent.dispatchEvent('pictures-game-over', {
\r\n\t
reason: reason,
\r\n\t
time: this.passtime
\r\n\t
});
\r\n\t
};
\r\n\t
return GameView;
\r\n\t
}(engine.Container));
\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
}
\
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
}
\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, r, startx, endx, c, starty, endy, uvs, isprite, 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
console.log(
\"
直接使用已加载的tex
\"
);
\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
console.log(
\"
调整222222222222
\"
);
\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
console.log('图片', t);
\r\n\t
console.log(
\"
图片获取尺寸
\"
, mwid, mhei);
\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
console.log(
\"
适配后的图片尺寸
\"
, mwid, mhei);
\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
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
}
\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
}
\r\n\t
for (r = 0; r < rows; r++) {
\r\n\t
startx = startlix + addlix * r;
\r\n\t
endx = startx + addlix;
\r\n\t
for (c = 0; c < cols; c++) {
\r\n\t
starty = startliy + addliy * c;
\r\n\t
endy = starty + addliy;
\r\n\t
uvs = new Float32Array([
\r\n\t
starty,
\r\n\t
startx,
\r\n\t
endy,
\r\n\t
startx,
\r\n\t
endy,
\r\n\t
endx,
\r\n\t
starty,
\r\n\t
endx
\r\n\t
]);
\r\n\t
isprite = new engine.Sprite(t);
\r\n\t
isprite.uvs = uvs;
\r\n\t
isprite.width = mwid1;
\r\n\t
isprite.height = mhei1;
\r\n\t
ispritename =
\"
pic_
\"
+ c +
\"
_
\"
+ r;
\r\n\t
isprite.name = ispritename;
\r\n\t
picarr[ispritename] = isprite;
\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
console.error(
\"
图片加载失败
\"
, e_1);
\r\n\t
console.log(url, rows, cols);
\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
}); });
\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
};
\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: return [2];
\r\n\t
}
\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.dicont.removeChildren();
\r\n\t
this.movesteps = 0;
\r\n\t
this.startime = Date.now();
\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
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
console.log(
\"
start-----------------
\"
, actidx);
\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));
\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));
\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
}
\n\n\t
return index;
\n\n
})));
\n
"
}
src/custom/bjxd-game/debug/app.js
View file @
d0b28e59
...
...
@@ -45,8 +45,11 @@ function launchWithCustomModule(customModule) {
},
100
);
setTimeout
(()
=>
{
engine
.
globalEvent
.
dispatchEvent
(
'bjxd-game-start'
,
{
guide
:
2
});
engine
.
globalEvent
.
dispatchEvent
(
'bjxd-game-start'
,
{
guide
:
1
});
},
500
);
setTimeout
(()
=>
{
engine
.
globalEvent
.
dispatchEvent
(
'bjxd-game-reset'
,
{
guide
:
2
});
},
600
);
});
engine
.
globalEvent
.
addEventListener
(
'dxbcyj-game-result'
,
(
e
)
=>
{
...
...
src/custom/bjxd-game/debug/main.js
View file @
d0b28e59
...
...
@@ -12,7 +12,6 @@
function
injectProps
(
p
)
{
engine
.
injectProp
(
props
,
p
);
}
//# sourceMappingURL=props.js.map
var
ObjectPool
=
engine
.
ObjectPool
;
var
Road
=
(
function
(
_super
)
{
...
...
@@ -118,7 +117,6 @@
};
return
Road
;
}(
engine
.
Container
));
//# sourceMappingURL=Road.js.map
function
getTexture
(
uuid
)
{
return
engine
.
Texture
.
from
(
getAssetByUUID
(
uuid
).
uuid
);
...
...
@@ -134,7 +132,6 @@
inst
.
source
=
engine
.
getAssetByName
(
name
).
uuid
;
return
inst
;
}
//# sourceMappingURL=utils.js.map
var
GuideLayer
=
(
function
(
_super
)
{
tslib
.
__extends
(
GuideLayer
,
_super
);
...
...
@@ -178,7 +175,6 @@
};
return
GuideLayer
;
}(
engine
.
Container
));
//# sourceMappingURL=GuideLayer.js.map
var
LoopComponent
=
(
function
(
_super
)
{
tslib
.
__extends
(
LoopComponent
,
_super
);
...
...
@@ -254,7 +250,6 @@
};
return
LoopComponent
;
}(
engine
.
Container
));
//# sourceMappingURL=LoopComponent.js.map
var
Background
=
(
function
(
_super
)
{
tslib
.
__extends
(
Background
,
_super
);
...
...
@@ -330,7 +325,6 @@
};
return
Background
;
}(
engine
.
Container
));
//# sourceMappingURL=Background.js.map
var
Pier
=
(
function
(
_super
)
{
tslib
.
__extends
(
Pier
,
_super
);
...
...
@@ -351,14 +345,6 @@
this
.
changeBg
();
bmp
.
x
=
0
;
bmp
.
y
=
this
.
zhuy
;
if
(
this
.
children
.
length
<
2
)
{
var
gold
=
new
engine
.
Sprite
();
gold
.
texture
=
getTextureByName
(
'gold'
);
gold
.
name
=
'gold'
;
this
.
addChild
(
gold
);
}
this
.
setGoldPosX
(
bmp
);
this
.
setShowGold
();
};
Pier
.
prototype
.
changeBg
=
function
()
{
var
texstr
;
...
...
@@ -409,13 +395,12 @@
};
return
Pier
;
}(
engine
.
Container
));
//# sourceMappingURL=Pier.js.map
var
Player
=
(
function
(
_super
)
{
tslib
.
__extends
(
Player
,
_super
);
function
Player
()
{
var
_this
=
_super
!==
null
&&
_super
.
apply
(
this
,
arguments
)
||
this
;
_this
.
playery
=
8
45
;
_this
.
playery
=
8
78
;
return
_this
;
}
Player
.
prototype
.
initPlayer
=
function
(
pierWidth
)
{
...
...
@@ -425,13 +410,14 @@
this
.
playerNode
=
createSvga
(
'walk'
);
this
.
_container
.
addChild
(
this
.
playerNode
);
this
.
playerNode
.
y
=
this
.
playery
;
this
.
playerNode
.
x
=
pierWidth
/
2
-
8
0
;
this
.
playerNode
.
x
=
pierWidth
/
2
-
5
0
;
this
.
playerNode
.
play
();
this
.
_container
.
visible
=
false
;
};
Player
.
prototype
.
revive
=
function
()
{
this
.
_container
.
x
=
0
;
this
.
_container
.
y
=
0
;
this
.
playerNode
.
x
=
this
.
pierWidth
/
2
-
8
0
;
this
.
playerNode
.
x
=
this
.
pierWidth
/
2
-
5
0
;
this
.
playerNode
.
y
=
this
.
playery
;
};
Player
.
prototype
.
setViewport
=
function
(
pos
,
callBack
,
pierWidth
)
{
...
...
@@ -486,7 +472,6 @@
};
return
Player
;
}(
engine
.
Container
));
//# sourceMappingURL=Player.js.map
var
Strut
=
(
function
(
_super
)
{
tslib
.
__extends
(
Strut
,
_super
);
...
...
@@ -545,14 +530,16 @@
chax
=
20
;
}
else
if
(
GameView
.
bgIndex
==
1
)
{
paddingx
=
3
0
;
chax
=
60
;
paddingx
=
3
;
chax
=
39
;
}
else
if
(
GameView
.
bgIndex
==
2
)
{
paddingx
=
20
;
chax
=
20
;
}
if
(
this
.
_distance
[
0
]
-
this
.
_distance
[
1
]
+
chax
<=
this
.
_strut
.
height
&&
this
.
_strut
.
height
<=
this
.
_distance
[
0
]
+
paddingx
)
{
var
mindis
=
this
.
_distance
[
0
]
-
this
.
_distance
[
1
]
+
chax
;
var
maxdis
=
this
.
_distance
[
0
]
+
paddingx
;
if
(
mindis
<=
this
.
_strut
.
height
&&
this
.
_strut
.
height
<=
maxdis
)
{
isSuccess
=
true
;
}
if
(
this
.
_callBack
)
{
...
...
@@ -560,8 +547,14 @@
}
};
Strut
.
prototype
.
frameStrut
=
function
()
{
if
(
this
.
_strut
.
height
<
1000
)
{
this
.
_strut
.
height
+=
props
.
strutUpSpeed
;
var
maxdis
=
700
;
if
(
this
.
_strut
.
height
<
maxdis
)
{
if
(
this
.
_strut
.
height
+
GameView
.
speed
>
maxdis
)
{
this
.
_strut
.
height
=
maxdis
;
}
else
{
this
.
_strut
.
height
+=
GameView
.
speed
;
}
}
};
Strut
.
prototype
.
rest
=
function
()
{
...
...
@@ -578,7 +571,6 @@
};
return
Strut
;
}(
engine
.
Container
));
//# sourceMappingURL=Strut.js.map
var
ObjectPool$1
=
engine
.
ObjectPool
;
var
PoolName
=
'pier'
;
...
...
@@ -592,6 +584,8 @@
function
GameView
()
{
var
_this
=
_super
.
call
(
this
)
||
this
;
_this
.
moveX
=
0
;
_this
.
playery
=
878
;
_this
.
inani
=
true
;
_this
.
once
(
engine
.
Event
.
ADDED_TO_STAGE
,
_this
.
setup
,
_this
);
return
_this
;
}
...
...
@@ -610,10 +604,33 @@
var
player
=
this
.
_player
=
new
Player
();
this
.
addChild
(
player
);
player
.
initPlayer
(
pierWidth
);
this
.
pierWidth
=
pierWidth
;
this
.
xiacheNode
=
createSvga
(
"xiache"
);
this
.
addChild
(
this
.
xiacheNode
);
this
.
xiacheNode
.
y
=
this
.
playery
-
35
;
this
.
xiacheNode
.
x
=
this
.
pierWidth
/
2
-
100
;
this
.
xiacheNode
.
stop
();
this
.
xiacheNode
.
name
=
"xiacheanm"
;
console
.
log
(
"下车动画帧数"
,
this
.
xiacheNode
.
totalFrames
,
this
.
xiacheNode
);
this
.
xiacheNode
.
visible
=
false
;
var
strut
=
this
.
_strut
=
new
Strut
();
this
.
addChild
(
strut
);
strut
.
init
();
};
GameView
.
prototype
.
playComp
=
function
()
{
var
curframe
=
this
.
xiacheNode
.
currentFrame
;
if
(
curframe
==
this
.
xiacheNode
.
totalFrames
)
{
this
.
inani
=
false
;
this
.
xiacheNode
.
stop
();
this
.
xiacheNode
.
removeEventListener
(
engine
.
Event
.
ENTER_FRAME
,
this
.
playComp
,
this
);
for
(
var
i
=
0
;
i
<
15
;
i
++
)
{
if
(
i
<
12
)
{
this
.
xiacheNode
.
getChildAt
(
i
).
visible
=
false
;
}
}
this
.
_player
.
_container
.
visible
=
true
;
}
};
GameView
.
prototype
.
start
=
function
(
guide
)
{
return
tslib
.
__awaiter
(
this
,
void
0
,
void
0
,
function
()
{
var
initScore
;
...
...
@@ -622,8 +639,13 @@
this
.
_sumScore
=
0
;
this
.
_isMouseDown
=
false
;
this
.
_guide
=
guide
;
initScore
=
this
.
_road
.
getStartGold
(
0
)
?
props
.
goldScore
:
0
;
this
.
_player
.
revive
();
this
.
closeStrut
();
initScore
=
0
;
this
.
updateScore
(
initScore
);
if
(
this
.
xiacheNode
.
x
<
this
.
pierWidth
/
2
-
105
)
{
this
.
startAnm
();
}
if
(
this
.
_guide
==
'1'
)
{
this
.
setGuide
();
}
...
...
@@ -635,9 +657,30 @@
});
});
};
GameView
.
prototype
.
startAnm
=
function
()
{
this
.
inani
=
true
;
this
.
xiacheNode
.
visible
=
true
;
for
(
var
i
=
0
;
i
<
15
;
i
++
)
{
if
(
i
<
12
)
{
this
.
xiacheNode
.
getChildAt
(
i
).
visible
=
true
;
}
}
this
.
xiacheNode
.
x
=
this
.
pierWidth
/
2
-
100
;
this
.
_player
.
_container
.
visible
=
false
;
this
.
xiacheNode
.
gotoAndPlay
(
1
);
this
.
xiacheNode
.
addEventListener
(
engine
.
Event
.
ENTER_FRAME
,
this
.
playComp
,
this
);
};
GameView
.
prototype
.
reset
=
function
()
{
this
.
_sumScore
=
0
;
engine
.
globalEvent
.
dispatchEvent
(
'bjxd-game-score'
,
{
score
:
this
.
_sumScore
});
this
.
_player
.
revive
();
this
.
closeStrut
();
this
.
changeBg
(
GameView
.
bgIndex
);
this
.
startAnm
();
};
GameView
.
prototype
.
revive
=
function
()
{
console
.
log
(
"复活---------"
);
this
.
_player
.
revive
();
this
.
startAnm
();
this
.
_isTouchLayer
=
true
;
this
.
closeStrut
();
};
...
...
@@ -676,7 +719,7 @@
GameView
.
prototype
.
setScoreShow
=
function
()
{
};
GameView
.
prototype
.
onMouseDown
=
function
()
{
if
(
this
.
_isTouchLayer
)
{
if
(
this
.
_isTouchLayer
&&
!
this
.
inani
)
{
this
.
_isMouseDown
=
true
;
this
.
_strut
.
onMouseDown
(
this
.
_road
.
getFristPier
(),
this
.
_road
.
getDistance
(),
this
.
goCallBcak
.
bind
(
this
));
}
...
...
@@ -691,7 +734,6 @@
GameView
.
prototype
.
goCallBcak
=
function
(
isSuccess
)
{
var
_this
=
this
;
if
(
isSuccess
)
{
console
.
log
(
'成功了'
);
var
movePos
=
this
.
_road
.
getMovePos
();
if
(
this
.
_road
.
getStartGold
(
1
,
false
))
{
this
.
updateScore
(
props
.
singleScore
+
props
.
goldScore
);
...
...
@@ -702,9 +744,7 @@
this
.
_player
.
setViewport
(
movePos
,
this
.
complete
.
bind
(
this
));
}
else
{
console
.
log
(
'失败了'
);
this
.
_player
.
setViewport
(
this
.
_strut
.
getStrutHeight
(),
function
()
{
console
.
log
(
'掉下去了'
);
engine
.
globalEvent
.
dispatchEvent
(
'bjxd-game-over'
,
{
score
:
_this
.
_sumScore
});
},
this
.
_road
.
getFristPier
());
}
...
...
@@ -718,6 +758,14 @@
this
.
_player
.
setBackViewport
(
function
()
{
_this
.
_isTouchLayer
=
true
;
});
var
carx
=
this
.
xiacheNode
.
x
;
if
(
carx
>
-
200
)
{
carx
-=
movePos
;
engine
.
Tween
.
get
(
this
.
xiacheNode
,
{
loop
:
false
})
.
to
({
x
:
carx
},
props
.
pierMoveTime
);
}
this
.
closeStrut
();
};
GameView
.
prototype
.
closeStrut
=
function
()
{
...
...
@@ -725,7 +773,6 @@
};
GameView
.
prototype
.
updateScore
=
function
(
score
)
{
this
.
_sumScore
+=
score
;
console
.
log
(
"新分数"
,
this
.
_sumScore
);
engine
.
globalEvent
.
dispatchEvent
(
'bjxd-game-score'
,
{
score
:
this
.
_sumScore
});
};
GameView
.
prototype
.
getScore
=
function
()
{
...
...
@@ -738,18 +785,25 @@
this
.
_road
.
changeBg
();
}
};
GameView
.
prototype
.
changeSpeed
=
function
(
speed
)
{
if
(
GameView
.
speed
!=
speed
)
{
GameView
.
speed
=
speed
;
}
};
GameView
.
bgIndex
=
0
;
GameView
.
speed
=
10
;
return
GameView
;
}(
engine
.
Container
));
//# sourceMappingURL=GameView.js.map
var
GameWrapper
=
(
function
(
_super
)
{
tslib
.
__extends
(
GameWrapper
,
_super
);
function
GameWrapper
()
{
var
_this
=
_super
.
call
(
this
)
||
this
;
engine
.
globalEvent
.
addEventListener
(
'bjxd-game-start'
,
_this
.
start
,
_this
);
engine
.
globalEvent
.
addEventListener
(
'bjxd-game-reset'
,
_this
.
reset
,
_this
);
engine
.
globalEvent
.
addEventListener
(
'bjxd-game-revive'
,
_this
.
revive
,
_this
);
engine
.
globalEvent
.
addEventListener
(
'bjxd-game-change'
,
_this
.
change
,
_this
);
engine
.
globalEvent
.
addEventListener
(
'bjxd-game-speed'
,
_this
.
speed
,
_this
);
var
gameView
=
_this
.
_gameView
=
new
GameView
();
_this
.
addChild
(
gameView
);
return
_this
;
...
...
@@ -757,15 +811,20 @@
GameWrapper
.
prototype
.
start
=
function
(
event
)
{
this
.
_gameView
.
start
(
event
.
data
.
guide
);
};
GameWrapper
.
prototype
.
reset
=
function
()
{
this
.
_gameView
.
reset
();
};
GameWrapper
.
prototype
.
revive
=
function
()
{
this
.
_gameView
.
revive
();
};
GameWrapper
.
prototype
.
change
=
function
(
event
)
{
this
.
_gameView
.
changeBg
(
event
.
data
.
index
);
};
GameWrapper
.
prototype
.
speed
=
function
(
event
)
{
this
.
_gameView
.
changeSpeed
(
event
.
data
.
speed
);
};
return
GameWrapper
;
}(
engine
.
Container
));
//# sourceMappingURL=GameWrapper.js.map
function
index
(
props
)
{
prepareProps
();
...
...
@@ -773,7 +832,6 @@
var
instance
=
new
GameWrapper
();
return
instance
;
}
//# sourceMappingURL=index.js.map
return
index
;
...
...
src/custom/bjxd-game/debug/main.js.map
View file @
d0b28e59
This source diff could not be displayed because it is too large. You can
view the blob
instead.
src/custom/bjxd-game/meta.json
View file @
d0b28e59
...
...
@@ -50,7 +50,7 @@
"strutUpSpeed"
:
{
"alias"
:
"撑杆上升速度(每帧上升增量,一秒60帧)"
,
"type"
:
"number"
,
"default"
:
1
0
"default"
:
3
0
},
"strutWidth"
:
{
"alias"
:
"撑杆宽度"
,
...
...
@@ -121,7 +121,7 @@
},
{
"name"
:
"yindao1"
,
"url"
:
"//yun.duiba.com.cn/aurora/assets/
a0409ec24b35198e990c61bc7f5dc66b15a5213a
.png"
,
"url"
:
"//yun.duiba.com.cn/aurora/assets/
f21d5429dbd947e66613bd6c5d864fdcfd104bd4
.png"
,
"uuid"
:
"yindao1"
,
"ext"
:
".png"
},
...
...
@@ -169,9 +169,15 @@
},
{
"name"
:
"walk"
,
"url"
:
"//yun.duiba.com.cn/aurora/assets/
a4ab1e1a2b49d140db4a0806562098a8b1619b06.svga
"
,
"url"
:
"//yun.duiba.com.cn/aurora/assets/
5b31481f8d5669213da518b156aac7cadf5d9374
"
,
"uuid"
:
"10cd1fdd-4fd8-43cf-a1c7-6ff5846d8a91"
,
"ext"
:
".svga"
},
{
"name"
:
"xiache"
,
"url"
:
"//yun.duiba.com.cn/aurora/assets/57ad75aa036c04e13abcf32c464ff5ae37419495"
,
"uuid"
:
"xiache"
,
"ext"
:
".svga"
}
],
"events"
:
{
...
...
@@ -196,6 +202,12 @@
"data"
:
{
"index"
:
1
}
},
"bjxd-game-speed"
:
{
"alias"
:
"修改速度"
,
"data"
:
{
"speed"
:
10
}
}
},
"out"
:
{
...
...
src/custom/bjxd-game/src/game/GameView.ts
View file @
d0b28e59
...
...
@@ -5,7 +5,7 @@ import { Road } from './Road';
*/
import
{
props
}
from
"../props"
;
import
{
getStage
,
getTextureByName
}
from
"./utils"
;
import
{
getStage
,
getTextureByName
,
createSvga
}
from
"./utils"
;
import
{
GuideLayer
}
from
"./GuideLayer"
;
import
{
Background
}
from
"./Background"
;
import
ObjectPool
=
engine
.
ObjectPool
;
...
...
@@ -29,6 +29,7 @@ export default class GameView extends engine.Container {
_backgroud
:
Background
;
_road
:
Road
;
_player
:
Player
;
_strut
:
Strut
;
_touchLayer
:
engine
.
Rect
;
_isTouchLayer
;
...
...
@@ -44,6 +45,13 @@ export default class GameView extends engine.Container {
testchange
:
engine
.
Label
;
static
bgIndex
:
number
=
0
;
private
xiacheNode
:
svga
.
Svga
;
playery
:
number
=
878
;
inani
:
boolean
=
true
;
pierWidth
;
constructor
()
{
super
();
this
.
once
(
engine
.
Event
.
ADDED_TO_STAGE
,
this
.
setup
,
this
);
...
...
@@ -67,23 +75,55 @@ export default class GameView extends engine.Container {
this
.
addChild
(
player
);
player
.
initPlayer
(
pierWidth
);
this
.
pierWidth
=
pierWidth
;
this
.
xiacheNode
=
createSvga
(
"xiache"
);
this
.
addChild
(
this
.
xiacheNode
);
this
.
xiacheNode
.
y
=
this
.
playery
-
35
;
this
.
xiacheNode
.
x
=
this
.
pierWidth
/
2
-
100
;
this
.
xiacheNode
.
stop
();
this
.
xiacheNode
.
name
=
"xiacheanm"
;
console
.
log
(
"下车动画帧数"
,
this
.
xiacheNode
.
totalFrames
,
this
.
xiacheNode
);
// this.xiacheNode.addEventListener(engine.Event.ENTER_FRAME,this.playComp,this);
this
.
xiacheNode
.
visible
=
false
;
const
strut
=
this
.
_strut
=
new
Strut
();
this
.
addChild
(
strut
);
strut
.
init
();
// this.startAnm();
// this._scoreContainer = new engine.Container();
// this.addChild(this._scoreContainer);
// this.initLabScore();
}
playComp
(){
let
curframe
=
this
.
xiacheNode
.
currentFrame
;
if
(
curframe
==
this
.
xiacheNode
.
totalFrames
){
this
.
inani
=
false
;
// console.log("下车动画播放完毕",curframe,this.xiacheNode);
this
.
xiacheNode
.
stop
();
this
.
xiacheNode
.
removeEventListener
(
engine
.
Event
.
ENTER_FRAME
,
this
.
playComp
,
this
);
for
(
let
i
=
0
;
i
<
15
;
i
++
){
if
(
i
<
12
){
this
.
xiacheNode
.
getChildAt
(
i
).
visible
=
false
;
}
}
this
.
_player
.
_container
.
visible
=
true
;
}
}
async
start
(
guide
)
{
this
.
_isTouchLayer
=
true
;
this
.
_sumScore
=
0
;
this
.
_isMouseDown
=
false
;
this
.
_guide
=
guide
;
this
.
_player
.
revive
();
this
.
closeStrut
();
let
initScore
=
this
.
_road
.
getStartGold
(
0
)
?
props
.
goldScore
:
0
;
let
initScore
=
0
;
//
this._road.getStartGold(0) ? props.goldScore : 0;
this
.
updateScore
(
initScore
);
if
(
this
.
xiacheNode
.
x
<
this
.
pierWidth
/
2
-
105
){
this
.
startAnm
();
}
//是否是新手
if
(
this
.
_guide
==
'1'
){
this
.
setGuide
();
...
...
@@ -92,10 +132,33 @@ export default class GameView extends engine.Container {
this
.
registerEvent
();
}
}
startAnm
(){
this
.
inani
=
true
;
this
.
xiacheNode
.
visible
=
true
;
for
(
let
i
=
0
;
i
<
15
;
i
++
){
if
(
i
<
12
){
this
.
xiacheNode
.
getChildAt
(
i
).
visible
=
true
;
}
}
this
.
xiacheNode
.
x
=
this
.
pierWidth
/
2
-
100
;
this
.
_player
.
_container
.
visible
=
false
;
this
.
xiacheNode
.
gotoAndPlay
(
1
);
this
.
xiacheNode
.
addEventListener
(
engine
.
Event
.
ENTER_FRAME
,
this
.
playComp
,
this
);
}
//重置
reset
(){
this
.
_sumScore
=
0
;
engine
.
globalEvent
.
dispatchEvent
(
'bjxd-game-score'
,{
score
:
this
.
_sumScore
});
this
.
_player
.
revive
();
this
.
closeStrut
();
this
.
changeBg
(
GameView
.
bgIndex
);
this
.
startAnm
();
}
//复活
revive
(){
console
.
log
(
"复活---------"
);
//
console.log("复活---------");
this
.
_player
.
revive
();
this
.
startAnm
();
this
.
_isTouchLayer
=
true
;
this
.
closeStrut
();
}
...
...
@@ -166,7 +229,7 @@ export default class GameView extends engine.Container {
}
//鼠标事件
onMouseDown
(){
if
(
this
.
_isTouchLayer
){
if
(
this
.
_isTouchLayer
&&!
this
.
inani
){
this
.
_isMouseDown
=
true
;
this
.
_strut
.
onMouseDown
(
this
.
_road
.
getFristPier
(),
this
.
_road
.
getDistance
(),
this
.
goCallBcak
.
bind
(
this
));
}
...
...
@@ -181,7 +244,7 @@ export default class GameView extends engine.Container {
//撑杆回调
goCallBcak
(
isSuccess
){
if
(
isSuccess
){
console
.
log
(
'成功了'
);
//
console.log('成功了');
let
movePos
=
this
.
_road
.
getMovePos
();
if
(
this
.
_road
.
getStartGold
(
1
,
false
)){
this
.
updateScore
(
props
.
singleScore
+
props
.
goldScore
);
...
...
@@ -192,9 +255,9 @@ export default class GameView extends engine.Container {
this
.
_player
.
setViewport
(
movePos
,
this
.
complete
.
bind
(
this
));
}
else
{
console
.
log
(
'失败了'
);
//
console.log('失败了');
this
.
_player
.
setViewport
(
this
.
_strut
.
getStrutHeight
(),()
=>
{
console
.
log
(
'掉下去了'
);
//
console.log('掉下去了');
engine
.
globalEvent
.
dispatchEvent
(
'bjxd-game-over'
,{
score
:
this
.
_sumScore
});
},
this
.
_road
.
getFristPier
())
}
...
...
@@ -211,6 +274,17 @@ export default class GameView extends engine.Container {
this
.
_player
.
setBackViewport
(()
=>
{
this
.
_isTouchLayer
=
true
;
});
let
carx
=
this
.
xiacheNode
.
x
;
if
(
carx
>-
200
){
carx
-=
movePos
;
engine
.
Tween
.
get
(
this
.
xiacheNode
,{
loop
:
false
})
.
to
({
x
:
carx
},
props
.
pierMoveTime
);
}
this
.
closeStrut
();
}
//重置撑杆
...
...
@@ -228,7 +302,7 @@ export default class GameView extends engine.Container {
// this.changeBg(2);
// }
// this.labScore.updateScore(this._sumScore);
console
.
log
(
"新分数"
,
this
.
_sumScore
);
//
console.log("新分数",this._sumScore);
engine
.
globalEvent
.
dispatchEvent
(
'bjxd-game-score'
,{
score
:
this
.
_sumScore
});
}
getScore
(){
...
...
@@ -244,4 +318,10 @@ export default class GameView extends engine.Container {
this
.
_road
.
changeBg
();
}
}
static
speed
=
10
;
changeSpeed
(
speed
){
if
(
GameView
.
speed
!=
speed
){
GameView
.
speed
=
speed
;
}
}
}
src/custom/bjxd-game/src/game/GameWrapper.ts
View file @
d0b28e59
...
...
@@ -13,8 +13,10 @@ export class GameWrapper extends engine.Container {
super
();
engine
.
globalEvent
.
addEventListener
(
'bjxd-game-start'
,
this
.
start
,
this
);
engine
.
globalEvent
.
addEventListener
(
'bjxd-game-reset'
,
this
.
reset
,
this
);
engine
.
globalEvent
.
addEventListener
(
'bjxd-game-revive'
,
this
.
revive
,
this
);
engine
.
globalEvent
.
addEventListener
(
'bjxd-game-change'
,
this
.
change
,
this
);
engine
.
globalEvent
.
addEventListener
(
'bjxd-game-speed'
,
this
.
speed
,
this
);
let
gameView
=
this
.
_gameView
=
new
GameView
();
this
.
addChild
(
gameView
);
...
...
@@ -24,6 +26,9 @@ export class GameWrapper extends engine.Container {
start
(
event
:
engine
.
Event
)
{
this
.
_gameView
.
start
(
event
.
data
.
guide
);
}
reset
(){
this
.
_gameView
.
reset
();
}
revive
(){
this
.
_gameView
.
revive
();
}
...
...
@@ -31,4 +36,7 @@ export class GameWrapper extends engine.Container {
// console.log("切换图片显示");
this
.
_gameView
.
changeBg
(
event
.
data
.
index
);
}
speed
(
event
:
engine
.
Event
){
this
.
_gameView
.
changeSpeed
(
event
.
data
.
speed
);
}
}
src/custom/bjxd-game/src/game/Pier.ts
View file @
d0b28e59
...
...
@@ -22,14 +22,14 @@ export class Pier extends engine.Container {
bmp
.
x
=
0
;
bmp
.
y
=
this
.
zhuy
;
if
(
this
.
children
.
length
<
2
){
const
gold
=
new
engine
.
Sprite
();
gold
.
texture
=
getTextureByName
(
'gold'
);
gold
.
name
=
'gold'
;
this
.
addChild
(
gold
);
}
this
.
setGoldPosX
(
bmp
);
this
.
setShowGold
();
//
if(this.children.length < 2){
//
const gold = new engine.Sprite();
//
gold.texture = getTextureByName('gold');
//
gold.name = 'gold';
//
this.addChild(gold);
//
}
//
this.setGoldPosX(bmp);
//
this.setShowGold();
}
changeBg
(){
let
texstr
;
...
...
src/custom/bjxd-game/src/game/Player.ts
View file @
d0b28e59
...
...
@@ -5,7 +5,7 @@ export class Player extends engine.Container{
private
playerNode
:
svga
.
Svga
;
pierWidth
playery
:
number
=
8
45
;
playery
:
number
=
8
78
;
initPlayer
(
pierWidth
){
this
.
pierWidth
=
pierWidth
;
this
.
_container
=
new
engine
.
Container
();
...
...
@@ -15,13 +15,15 @@ export class Player extends engine.Container{
this
.
playerNode
=
createSvga
(
'walk'
);
this
.
_container
.
addChild
(
this
.
playerNode
);
this
.
playerNode
.
y
=
this
.
playery
;
this
.
playerNode
.
x
=
pierWidth
/
2
-
8
0
;
this
.
playerNode
.
x
=
pierWidth
/
2
-
5
0
;
this
.
playerNode
.
play
();
this
.
_container
.
visible
=
false
;
}
revive
(){
this
.
_container
.
x
=
0
;
this
.
_container
.
y
=
0
;
this
.
playerNode
.
x
=
this
.
pierWidth
/
2
-
8
0
;
this
.
playerNode
.
x
=
this
.
pierWidth
/
2
-
5
0
;
this
.
playerNode
.
y
=
this
.
playery
;
}
setViewport
(
pos
,
callBack
,
pierWidth
?){
...
...
src/custom/bjxd-game/src/game/Strut.ts
View file @
d0b28e59
...
...
@@ -53,14 +53,17 @@ export class Strut extends engine.Container{
paddingx
=
20
;
chax
=
20
;
}
else
if
(
GameView
.
bgIndex
==
1
){
paddingx
=
3
0
;
chax
=
60
;
paddingx
=
3
;
chax
=
39
;
}
else
if
(
GameView
.
bgIndex
==
2
){
paddingx
=
20
;
chax
=
20
;
}
if
(
this
.
_distance
[
0
]
-
this
.
_distance
[
1
]
+
chax
<=
this
.
_strut
.
height
&&
this
.
_strut
.
height
<=
this
.
_distance
[
0
]
+
paddingx
){
let
mindis
=
this
.
_distance
[
0
]
-
this
.
_distance
[
1
]
+
chax
;
let
maxdis
=
this
.
_distance
[
0
]
+
paddingx
;
// console.log("成功失败判断",mindis,this._strut.height,maxdis);
if
(
mindis
<=
this
.
_strut
.
height
&&
this
.
_strut
.
height
<=
maxdis
){
isSuccess
=
true
;
}
if
(
this
.
_callBack
){
...
...
@@ -68,8 +71,31 @@ export class Strut extends engine.Container{
}
}
frameStrut
(){
if
(
this
.
_strut
.
height
<
1000
){
this
.
_strut
.
height
+=
props
.
strutUpSpeed
;
// let paddingx = 20;
// let chax = 20;
// if(GameView.bgIndex==0){
// paddingx = 20;
// chax = 20;
// }else if(GameView.bgIndex==1){
// paddingx = 3;
// chax = 39;
// }else if(GameView.bgIndex==2){
// paddingx = 20;
// chax = 20;
// }
// let tmindis = this._distance[0] - this._distance[1] + chax;
// let tmaxdis = this._distance[0] + paddingx;
let
maxdis
=
700
;
// maxdis = 700;
// console.log("测试杆长",maxdis);
if
(
this
.
_strut
.
height
<
maxdis
){
if
(
this
.
_strut
.
height
+
GameView
.
speed
>
maxdis
){
this
.
_strut
.
height
=
maxdis
}
else
{
this
.
_strut
.
height
+=
GameView
.
speed
;
}
}
}
rest
(){
...
...
src/custom/dxbcyj-game/meta.json
View file @
d0b28e59
...
...
@@ -50,7 +50,7 @@
"strutUpSpeed"
:
{
"alias"
:
"撑杆上升速度(每帧上升增量,一秒60帧)"
,
"type"
:
"number"
,
"default"
:
1
0
"default"
:
3
0
},
"strutWidth"
:
{
"alias"
:
"撑杆宽度"
,
...
...
src/custom/pintu/debug/app.js
View file @
d0b28e59
...
...
@@ -48,7 +48,7 @@ function launchWithCustomModule(customModule) {
setTimeout
(()
=>
{
engine
.
globalEvent
.
dispatchEvent
(
'pictures-initgame'
,
{
gameUrls
:[
"https://yun.duiba.com.cn/aurora/assets/
1456b2a9d72e56f075abb29df99052d87a0f1e48
.jpg"
,
"https://yun.duiba.com.cn/aurora/assets/
7a9960acd582bb0b41bcfcdb24da68f354ccb1ff
.jpg"
,
"https://yun.duiba.com.cn/aurora/assets/61fd0754d7924305fd2851be86a480d71d2c2981.jpg"
,
"https://yun.duiba.com.cn/aurora/assets/6b70d7ec626f35f21347bf5bc3e61bedc44167be.jpg"
]
...
...
@@ -56,12 +56,12 @@ function launchWithCustomModule(customModule) {
},
1000
);
setTimeout
(()
=>
{
engine
.
globalEvent
.
dispatchEvent
(
'pictures-start'
,
{
actidx
:
0
,
rows
:
3
,
cols
:
3
,
gametime
:
30000
});
//
engine.globalEvent.dispatchEvent('pictures-start', {
//
actidx:0,
//
rows:3,
//
cols:3,
//
gametime:30000
//
});
// const d = engine.gameStage.sceneContainer.getChildAt(0);
// engine.gameStage.sceneContainer.getChildAt(0).x = (d.stage.width-props.W)/2;
...
...
src/custom/pintu/debug/main.js
View file @
d0b28e59
...
...
@@ -12,7 +12,6 @@
function
injectProps
(
p
)
{
engine
.
injectProp
(
props
,
p
);
}
//# sourceMappingURL=props.js.map
function
getTexture
(
uuid
)
{
return
engine
.
Texture
.
from
(
getAssetByUUID
(
uuid
).
uuid
);
...
...
@@ -21,25 +20,28 @@
return
getTexture
(
engine
.
getAssetByName
(
name
).
uuid
);
}
function
loadImageByUrl
(
url
)
{
console
.
log
(
'loadImageByUrl----------:'
,
url
);
return
new
Promise
(
function
(
resolve
)
{
if
(
engine
.
TextureCache
[
url
])
{
resolve
(
engine
.
TextureCache
[
url
]);
}
else
{
var
t
=
engine
.
Texture
.
from
(
url
);
t
.
addEventListener
(
"loaded"
,
function
()
{
resolve
(
t
);
});
}
return
tslib
.
__awaiter
(
this
,
void
0
,
void
0
,
function
()
{
return
tslib
.
__generator
(
this
,
function
(
_a
)
{
console
.
log
(
'loadImageByUrl----------:'
,
url
);
return
[
2
,
new
Promise
(
function
(
resolve
)
{
if
(
engine
.
TextureCache
[
url
])
{
resolve
(
engine
.
TextureCache
[
url
]);
}
else
{
var
t
=
engine
.
Texture
.
from
(
url
);
t
.
addEventListener
(
"loaded"
,
function
()
{
resolve
(
t
);
});
}
})];
});
});
}
//# sourceMappingURL=utils.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
,
r
,
startx
,
endx
,
c
,
starty
,
endy
,
uvs
,
isprite
,
ispritename
,
e_1
;
return
tslib
.
__generator
(
this
,
function
(
_a
)
{
switch
(
_a
.
label
)
{
case
0
:
_a
.
trys
.
push
([
0
,
4
,
,
5
]);
_a
.
trys
.
push
([
0
,
6
,
,
7
]);
t
=
void
0
;
if
(
!
(
type1
==
1
))
return
[
3
,
1
];
console
.
log
(
"直接使用已加载的tex"
);
...
...
@@ -55,6 +57,32 @@
mhei1
=
setimgwid
/
cols
;
mwid
=
t
.
width
;
mhei
=
t
.
height
;
if
(
!
(
mwid
<
10
||
mhei
<
10
))
return
[
3
,
5
];
console
.
log
(
"调整222222222222"
);
return
[
4
,
new
Promise
(
function
(
res
)
{
setTimeout
(
function
()
{
res
();
},
200
);
})];
case
4
:
_a
.
sent
();
return
[
2
,
qietu
(
t
,
1
,
rows
,
cols
)];
case
5
:
console
.
log
(
'图片'
,
t
);
console
.
log
(
"图片获取尺寸"
,
mwid
,
mhei
);
if
(
mwid
>
mhei
)
{
if
(
mhei
<
setimgwid
)
{
mwid
=
mwid
*
setimgwid
/
mhei
;
mhei
=
setimgwid
;
}
}
else
{
if
(
mwid
<
setimgwid
)
{
mhei
=
mhei
*
setimgwid
/
mwid
;
mwid
=
setimgwid
;
}
}
console
.
log
(
"适配后的图片尺寸"
,
mwid
,
mhei
);
picarr
=
{};
picnames
=
[];
chax
=
void
0
;
...
...
@@ -110,18 +138,17 @@
mhei
:
mhei1
,
picnames
:
picnames
}];
case
4
:
case
6
:
e_1
=
_a
.
sent
();
console
.
error
(
"图片加载失败"
,
e_1
);
console
.
log
(
url
,
rows
,
cols
);
return
[
2
,
{
res
:
false
}];
case
5
:
return
[
2
];
case
7
:
return
[
2
];
}
});
});
});
//# sourceMappingURL=qietu.js.map
var
GameView
=
(
function
(
_super
)
{
tslib
.
__extends
(
GameView
,
_super
);
...
...
@@ -131,7 +158,10 @@
_this
.
selectImgArr
=
[];
_this
.
sucposData
=
{};
_this
.
gameUrls
=
[];
_this
.
gameTimes
=
[];
_this
.
onegamePics
=
[];
_this
.
movesteps
=
0
;
_this
.
startime
=
0
;
_this
.
once
(
engine
.
Event
.
ADDED_TO_STAGE
,
_this
.
initScene
,
_this
);
return
_this
;
}
...
...
@@ -139,6 +169,8 @@
this
.
lineShape
=
new
engine
.
Shape
();
this
.
selectimg3
=
new
engine
.
Image
(
getTextureByName
(
"框3"
));
this
.
selectimg4
=
new
engine
.
Image
(
getTextureByName
(
"框4"
));
this
.
selectimg3
.
mouseEnabled
=
false
;
this
.
selectimg4
.
mouseEnabled
=
false
;
this
.
dicont
=
new
engine
.
Container
();
this
.
linecont
=
new
engine
.
Container
();
this
.
blockcont
=
new
engine
.
Container
();
...
...
@@ -146,6 +178,8 @@
this
.
addChild
(
this
.
linecont
);
this
.
addChild
(
this
.
blockcont
);
this
.
linecont
.
addChild
(
this
.
lineShape
);
console
.
log
(
"拼图初始化完毕--------------"
);
engine
.
globalEvent
.
dispatchEvent
(
"pictures-time-initcomp"
,
{});
};
GameView
.
prototype
.
initgame
=
function
()
{
return
tslib
.
__awaiter
(
this
,
void
0
,
void
0
,
function
()
{
...
...
@@ -155,6 +189,7 @@
case
0
:
console
.
log
(
"initgame---------"
);
this
.
gameUrls
=
props
.
gameUrls
;
this
.
gameTimes
=
props
.
gameTimes
;
this
.
onegamePics
=
new
Array
();
l
=
0
;
_a
.
label
=
1
;
...
...
@@ -165,6 +200,9 @@
case
2
:
lt
=
_a
.
sent
();
this
.
onegamePics
.
push
(
lt
);
if
(
this
.
onegamePics
.
length
==
1
)
{
this
.
startfirst
();
}
_a
.
label
=
3
;
case
3
:
l
++
;
...
...
@@ -174,6 +212,96 @@
});
});
};
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
.
movesteps
=
0
;
this
.
startime
=
Date
.
now
();
actidx
=
0
;
this
.
gametime
=
this
.
gameTimes
[
actidx
];
this
.
showtime
=
this
.
gameTimes
[
actidx
];
this
.
passtime
=
0
;
engine
.
globalEvent
.
dispatchEvent
(
"pictures-time-update"
,
{
time
:
this
.
showtime
,
});
engine
.
globalEvent
.
dispatchEvent
(
"pictures-time-passtime"
,
{
passtime
:
this
.
passtime
});
console
.
log
(
"start-----------------"
,
actidx
);
this
.
rows
=
3
;
this
.
cols
=
3
;
this
.
nselectimg
=
null
;
if
(
this
.
rows
==
3
)
{
this
.
nselectimg
=
this
.
selectimg3
;
}
if
(
this
.
rows
==
4
)
{
this
.
nselectimg
=
this
.
selectimg4
;
}
this
.
selectImgArr
=
new
Array
();
this
.
sucposData
=
{};
tex
=
this
.
onegamePics
[
actidx
];
type1
=
1
;
if
(
!
tex
)
{
tex
=
this
.
gameUrls
[
actidx
];
type1
=
2
;
}
return
[
4
,
qietu
(
tex
,
type1
,
this
.
rows
,
this
.
cols
,
this
.
dicont
)];
case
1
:
result
=
_a
.
sent
();
res
=
result
.
res
;
if
(
res
)
{
picarr
=
result
.
picarr
;
mwid
=
result
.
mwid
;
mhei
=
result
.
mhei
;
picnames
=
result
.
picnames
;
this
.
mwid
=
mwid
;
this
.
mhei
=
mhei
;
this
.
picarr
=
picarr
;
this
.
picnames
=
picnames
;
gap
=
2
;
for
(
r
=
0
;
r
<
this
.
rows
;
r
++
)
{
for
(
c
=
0
;
c
<
this
.
cols
;
c
++
)
{
ipicx
=
mwid
*
c
+
gap
;
ipicy
=
mhei
*
r
+
gap
;
npicname
=
"pic_"
+
c
+
"_"
+
r
;
ipic
=
picarr
[
npicname
];
this
.
dicont
.
addChild
(
ipic
);
ipic
.
x
=
ipicx
;
ipic
.
y
=
ipicy
;
}
}
this
.
lineShape
.
clear
();
this
.
lineShape
.
beginStroke
(
0x0069df
,
4
,
engine
.
LINE_CAP
.
BUTT
,
engine
.
LINE_JOIN
.
BEVEL
,
100
);
this
.
lineShape
.
moveTo
(
0
+
gap
,
0
+
gap
);
this
.
lineShape
.
lineTo
(
mhei
*
this
.
cols
+
gap
,
0
+
gap
);
this
.
lineShape
.
lineTo
(
mhei
*
this
.
cols
+
gap
,
mwid
*
this
.
rows
+
gap
);
this
.
lineShape
.
lineTo
(
0
+
gap
,
mwid
*
this
.
rows
+
gap
);
this
.
lineShape
.
lineTo
(
0
+
gap
,
0
+
gap
);
for
(
rl
=
1
;
rl
<
this
.
rows
;
rl
++
)
{
this
.
lineShape
.
moveTo
(
0
+
gap
,
rl
*
mhei
+
gap
);
this
.
lineShape
.
lineTo
(
mwid
*
this
.
cols
+
gap
,
rl
*
mhei
+
gap
);
}
for
(
cl
=
1
;
cl
<
this
.
cols
;
cl
++
)
{
this
.
lineShape
.
moveTo
(
cl
*
mwid
+
gap
,
0
+
gap
);
this
.
lineShape
.
lineTo
(
cl
*
mwid
+
gap
,
this
.
rows
*
mhei
+
gap
);
}
this
.
lineShape
.
endStroke
();
engine
.
globalEvent
.
dispatchEvent
(
"pictures-load-complete"
);
this
.
ticker
&&
clearInterval
(
this
.
ticker
);
this
.
ticker
=
setInterval
(
this
.
update
,
10
);
}
else
{
console
.
error
(
"图片处理失败"
);
}
return
[
2
];
}
});
});
};
GameView
.
prototype
.
start
=
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
;
...
...
@@ -181,9 +309,18 @@
switch
(
_a
.
label
)
{
case
0
:
this
.
dicont
.
removeChildren
();
this
.
movesteps
=
0
;
this
.
startime
=
Date
.
now
();
actidx
=
props
.
actidx
;
this
.
gametime
=
props
.
gametime
;
this
.
showtime
=
props
.
gametime
;
this
.
gametime
=
this
.
gameTimes
[
actidx
];
this
.
showtime
=
this
.
gameTimes
[
actidx
];
this
.
passtime
=
0
;
engine
.
globalEvent
.
dispatchEvent
(
"pictures-time-update"
,
{
time
:
this
.
showtime
,
});
engine
.
globalEvent
.
dispatchEvent
(
"pictures-time-passtime"
,
{
passtime
:
this
.
passtime
});
console
.
log
(
"start-----------------"
,
actidx
);
this
.
rows
=
props
.
rows
;
this
.
cols
=
props
.
cols
;
...
...
@@ -194,7 +331,6 @@
if
(
this
.
rows
==
4
)
{
this
.
nselectimg
=
this
.
selectimg4
;
}
this
.
passtime
=
0
;
this
.
selectImgArr
=
new
Array
();
this
.
sucposData
=
{};
tex
=
this
.
onegamePics
[
actidx
];
...
...
@@ -244,7 +380,8 @@
this
.
lineShape
.
lineTo
(
cl
*
mwid
+
gap
,
this
.
rows
*
mhei
+
gap
);
}
this
.
lineShape
.
endStroke
();
this
.
ticker
=
setInterval
(
this
.
update
,
20
);
this
.
ticker
&&
clearInterval
(
this
.
ticker
);
this
.
ticker
=
setInterval
(
this
.
update
,
10
);
}
else
{
console
.
error
(
"图片处理失败"
);
...
...
@@ -281,9 +418,12 @@
};
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
();
...
...
@@ -294,6 +434,9 @@
if
(
this
.
ingame
)
{
var
passtime
=
(
ntime
-
this
.
lastframetime
)
/
1000
;
this
.
passtime
+=
passtime
;
engine
.
globalEvent
.
dispatchEvent
(
"pictures-time-passtime"
,
{
passtime
:
this
.
passtime
});
var
showtime1
=
Math
.
round
(
this
.
gametime
-
this
.
passtime
);
if
(
this
.
showtime
!=
showtime1
)
{
this
.
showtime
=
showtime1
;
...
...
@@ -326,6 +469,10 @@
}
else
if
(
this
.
selectImgArr
.
length
==
1
)
{
if
(
selectname
==
this
.
selectImgArr
[
0
])
{
if
(
this
.
nselectimg
)
{
this
.
blockcont
.
removeChild
(
this
.
nselectimg
);
}
this
.
selectImgArr
=
new
Array
();
return
;
}
else
{
...
...
@@ -352,6 +499,7 @@
img2
.
y
=
imgpos1y
;
img2
.
postr
=
imgpostr1
;
this
.
selectImgArr
=
new
Array
();
this
.
movesteps
+=
1
;
if
(
this
.
nselectimg
)
{
this
.
blockcont
.
removeChild
(
this
.
nselectimg
);
}
...
...
@@ -380,9 +528,13 @@
GameView
.
prototype
.
gameover
=
function
(
reason
)
{
this
.
ingame
=
false
;
this
.
ticker
&&
clearInterval
(
this
.
ticker
);
var
ntime
=
Date
.
now
();
var
gametime
=
ntime
-
this
.
startime
;
engine
.
globalEvent
.
dispatchEvent
(
'pictures-game-over'
,
{
reason
:
reason
,
time
:
this
.
passtime
time
:
this
.
passtime
,
number
:
this
.
movesteps
,
gametime
:
gametime
});
};
return
GameView
;
...
...
@@ -420,7 +572,6 @@
};
return
GameWrapper
;
}(
engine
.
Container
));
//# sourceMappingURL=GameWrapper.js.map
function
index
(
props
)
{
prepareProps
();
...
...
@@ -428,7 +579,6 @@
var
instance
=
new
GameWrapper
();
return
instance
;
}
//# sourceMappingURL=index.js.map
return
index
;
...
...
src/custom/pintu/debug/main.js.map
View file @
d0b28e59
{"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\nexport let props: any = {};\r\n\r\nexport function prepareProps() {\r\n\tlet metaProps = getProps();\r\n\r\n\tengine.injectProp(props, metaProps);\r\n}\r\n\r\nexport function injectProps(p) {\r\n\tengine.injectProp(props, p);\r\n}\r\n","/**\r\n * Created by rockyl on 2020-01-21.\r\n */\r\n\r\nexport function getTexture(uuid) {\r\n\treturn engine.Texture.from(getAssetByUUID(uuid).uuid);\r\n}\r\n\r\nexport function getTextureByName(name) {\r\n\treturn getTexture(engine.getAssetByName(name).uuid);\r\n}\r\n\r\nexport function playSound(name) {\r\n\tengine.playSound(engine.getAssetByName(name).uuid, {keep: true});\r\n}\r\nexport function createSvga(name, anchorName?) {\r\n\tlet inst = new svga.Svga();\r\n\tinst.source = 'asset://' + engine.getAssetByName(name).uuid;\r\n\treturn inst;\r\n}\r\n\r\nexport function loadImageByUrl(url){\r\n\tconsole.log('loadImageByUrl----------:',url);\r\n\treturn new Promise((resolve) => {\r\n\t\tif (engine.TextureCache[url]) {\r\n\t\t\tresolve(engine.TextureCache[url])\r\n\t\t} else {\r\n\t\t\tvar t = engine.Texture.from(url);\r\n\t\t\tt.addEventListener(\"loaded\", () => { resolve(t) })\r\n\t\t}\r\n\t})\r\n}","import { props } from \"../props\";\r\nimport { loadImageByUrl } from \"./utils\";\r\nconst urls = [];\r\nconst picMap = {};\r\nconst posMap = {};\r\nexport 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 console.log(\"直接使用已加载的tex\");\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\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 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 }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 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 isprite.uvs = uvs;\r\n\r\n isprite.width = mwid1;\r\n isprite.height = mhei1;\r\n\r\n let ispritename = \"pic_\"+c+\"_\"+r;\r\n isprite.name = ispritename;\r\n picarr[ispritename] = isprite;\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 console.error(\"图片加载失败\",e);\r\n console.log(url,rows,cols);\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\nimport { props } from \"../props\";\r\nimport qietu from \"./qietu\";\r\nimport { getTexture, loadImageByUrl,getTextureByName } from \"./utils\";\r\nimport ObjectPool = engine.ObjectPool;\r\n\r\nexport 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 onegamePics:Array<engine.Texture> = [];\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 //底图\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 async initgame(){\r\n console.log(\"initgame---------\");\r\n this.gameUrls = props.gameUrls;\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 }\r\n }\r\n async start() {\r\n \r\n this.dicont.removeChildren();\r\n\r\n let actidx = props.actidx;\r\n this.gametime = props.gametime;\r\n this.showtime = props.gametime;\r\n console.log(\"start-----------------\",actidx);\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 this.passtime = 0;\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\r\n this.ticker = setInterval(this.update, 20);\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 }\r\n resume(){\r\n this.ingame = true;\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 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 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 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 engine.globalEvent.dispatchEvent('pictures-game-over', {\r\n reason:reason,\r\n time: this.passtime \r\n });\r\n }\r\n\r\n}\r\n","/**\r\n * Created by rockyl on 2020-01-09.\r\n */\r\n\r\nimport GameView from \"./GameView\";\r\nimport { injectProps } from \"../props\";\r\n\r\n\r\nexport class GameWrapper extends engine.Container {\r\n\t// private _status;\r\n\tprivate _gameView: GameView;\r\n\r\n\r\n\r\n\r\n\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\t//创建实例\r\n\t\tthis._gameView = new GameView();\r\n\t\tthis.addChild(this._gameView);\r\n\r\n\t\tengine.globalEvent.addEventListener('pictures-initgame', this.initgame, this);\r\n\t\tengine.globalEvent.addEventListener('pictures-start', this.start, this);\r\n\t\tengine.globalEvent.addEventListener('pictures-luanxu', this.luanxu, this);\r\n\t\tengine.globalEvent.addEventListener('pictures-pause', this.pause, this);\r\n\t\tengine.globalEvent.addEventListener('pictures-resume', this.resume, this);\r\n\t}\r\n\tinitgame(event: engine.Event) {\r\n\t\tinjectProps(event.data);\r\n\r\n\t\t// this._status = 1;\r\n\r\n\t\tthis._gameView.initgame();\r\n\t}\r\n\tstart(event: engine.Event) {\r\n\t\tinjectProps(event.data);\r\n\r\n\t\t// this._status = 1;\r\n\r\n\t\tthis._gameView.start();\r\n\t}\r\n\tluanxu(){\r\n\t\tthis._gameView.luanxu();\r\n\t}\r\n\tpause(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\nimport {GameWrapper} from \"./game/GameWrapper\";\r\nimport {injectProps, prepareProps} from \"./props\";\r\n\r\nexport default function (props) {\r\n\tprepareProps();\r\n\tinjectProps(props);\r\n\r\n\tlet instance = new GameWrapper();\r\n\t\r\n\treturn 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/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
console.log(
\"
直接使用已加载的tex
\"
);
\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
console.log(
\"
调整222222222222
\"
);
\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
console.log('图片',t);
\r\n
console.log(
\"
图片获取尺寸
\"
,mwid,mhei);
\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
console.log(
\"
适配后的图片尺寸
\"
,mwid,mhei);
\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
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
}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
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
isprite.uvs = uvs;
\r\n\r\n
isprite.width = mwid1;
\r\n
isprite.height = mhei1;
\r\n\r\n
let ispritename =
\"
pic_
\"
+c+
\"
_
\"
+r;
\r\n
isprite.name = ispritename;
\r\n
picarr[ispritename] = isprite;
\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
console.error(
\"
图片加载失败
\"
,e);
\r\n
console.log(url,rows,cols);
\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
}
\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
}
\r\n
async startfirst(){\r
\n
this.dicont.removeChildren();
\r\n
this.movesteps = 0;
\r\n
this.startime = Date.now();
\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\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
console.log(
\"
start-----------------
\"
,actidx);
\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
src/custom/pintu/meta.json
View file @
d0b28e59
...
...
@@ -106,6 +106,24 @@
"data"
:
{
"reason"
:
"结束(1:成功,2失败)"
}
},
"pictures-load-complete"
:
{
"alias"
:
"图片加载完毕"
,
"data"
:
{
"reason"
:
"结束(1:成功,2失败)"
}
},
"pictures-time-passtime"
:
{
"alias"
:
"倒计时进度条"
,
"data"
:
{
"passtime"
:
0
}
},
"pictures-time-initcomp"
:
{
"alias"
:
"倒计时进度条"
,
"data"
:
{
"passtime"
:
0
}
}
}
}
...
...
src/custom/pintu/src/game/GameView.ts
View file @
d0b28e59
...
...
@@ -40,7 +40,10 @@ export default class GameView extends engine.Container {
picarr
;
gameUrls
:
Array
<
string
>
=
[];
gameTimes
:
Array
<
number
>
=
[];
onegamePics
:
Array
<
engine
.
Texture
>
=
[];
movesteps
:
number
=
0
;
startime
:
number
=
0
;
constructor
()
{
super
();
this
.
once
(
engine
.
Event
.
ADDED_TO_STAGE
,
this
.
initScene
,
this
);
...
...
@@ -49,6 +52,8 @@ export default class GameView extends engine.Container {
this
.
lineShape
=
new
engine
.
Shape
();
this
.
selectimg3
=
new
engine
.
Image
(
getTextureByName
(
"框3"
));
this
.
selectimg4
=
new
engine
.
Image
(
getTextureByName
(
"框4"
));
this
.
selectimg3
.
mouseEnabled
=
false
;
this
.
selectimg4
.
mouseEnabled
=
false
;
//底图
this
.
dicont
=
new
engine
.
Container
();
//线
...
...
@@ -61,25 +66,132 @@ export default class GameView extends engine.Container {
this
.
addChild
(
this
.
blockcont
);
this
.
linecont
.
addChild
(
this
.
lineShape
);
console
.
log
(
"拼图初始化完毕--------------"
);
engine
.
globalEvent
.
dispatchEvent
(
"pictures-time-initcomp"
,{});
}
async
initgame
(){
console
.
log
(
"initgame---------"
);
this
.
gameUrls
=
props
.
gameUrls
;
this
.
gameTimes
=
props
.
gameTimes
;
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
;
this
.
onegamePics
.
push
(
lt
);
if
(
this
.
onegamePics
.
length
==
1
){
//第一张图加载完毕,自动填充
this
.
startfirst
();
}
}
}
async
startfirst
(){
this
.
dicont
.
removeChildren
();
this
.
movesteps
=
0
;
this
.
startime
=
Date
.
now
();
let
actidx
=
0
;
this
.
gametime
=
this
.
gameTimes
[
actidx
];
this
.
showtime
=
this
.
gameTimes
[
actidx
];
this
.
passtime
=
0
;
engine
.
globalEvent
.
dispatchEvent
(
"pictures-time-update"
,{
time
:
this
.
showtime
,
});
engine
.
globalEvent
.
dispatchEvent
(
"pictures-time-passtime"
,{
passtime
:
this
.
passtime
});
console
.
log
(
"start-----------------"
,
actidx
);
this
.
rows
=
3
;
this
.
cols
=
3
;
this
.
nselectimg
=
null
;
if
(
this
.
rows
==
3
){
this
.
nselectimg
=
this
.
selectimg3
;
}
if
(
this
.
rows
==
4
){
this
.
nselectimg
=
this
.
selectimg4
;
}
this
.
selectImgArr
=
new
Array
();
this
.
sucposData
=
{};
let
tex
:
any
=
this
.
onegamePics
[
actidx
];
let
type1
=
1
;
if
(
!
tex
){
tex
=
this
.
gameUrls
[
actidx
];
type1
=
2
;
}
let
result
=
await
qietu
(
tex
,
type1
,
this
.
rows
,
this
.
cols
,
this
.
dicont
);
let
res
=
result
.
res
;
if
(
res
){
let
picarr
=
result
.
picarr
;
let
mwid
=
result
.
mwid
;
let
mhei
=
result
.
mhei
;
let
picnames
=
result
.
picnames
;
this
.
mwid
=
mwid
;
this
.
mhei
=
mhei
;
this
.
picarr
=
picarr
;
this
.
picnames
=
picnames
;
let
gap
=
2
;
for
(
let
r
=
0
;
r
<
this
.
rows
;
r
++
){
for
(
let
c
=
0
;
c
<
this
.
cols
;
c
++
){
let
ipicx
=
mwid
*
c
+
gap
;
let
ipicy
=
mhei
*
r
+
gap
;
let
npicname
=
"pic_"
+
c
+
"_"
+
r
;
let
ipic
=
picarr
[
npicname
];
this
.
dicont
.
addChild
(
ipic
);
ipic
.
x
=
ipicx
;
ipic
.
y
=
ipicy
;
}
}
//框线
this
.
lineShape
.
clear
();
this
.
lineShape
.
beginStroke
(
0x0069df
,
4
,
engine
.
LINE_CAP
.
BUTT
,
engine
.
LINE_JOIN
.
BEVEL
,
100
);
this
.
lineShape
.
moveTo
(
0
+
gap
,
0
+
gap
);
this
.
lineShape
.
lineTo
(
mhei
*
this
.
cols
+
gap
,
0
+
gap
);
this
.
lineShape
.
lineTo
(
mhei
*
this
.
cols
+
gap
,
mwid
*
this
.
rows
+
gap
);
this
.
lineShape
.
lineTo
(
0
+
gap
,
mwid
*
this
.
rows
+
gap
);
this
.
lineShape
.
lineTo
(
0
+
gap
,
0
+
gap
);
for
(
let
rl
=
1
;
rl
<
this
.
rows
;
rl
++
){
this
.
lineShape
.
moveTo
(
0
+
gap
,
rl
*
mhei
+
gap
);
this
.
lineShape
.
lineTo
(
mwid
*
this
.
cols
+
gap
,
rl
*
mhei
+
gap
);
}
for
(
let
cl
=
1
;
cl
<
this
.
cols
;
cl
++
){
this
.
lineShape
.
moveTo
(
cl
*
mwid
+
gap
,
0
+
gap
);
this
.
lineShape
.
lineTo
(
cl
*
mwid
+
gap
,
this
.
rows
*
mhei
+
gap
);
}
this
.
lineShape
.
endStroke
();
engine
.
globalEvent
.
dispatchEvent
(
"pictures-load-complete"
);
this
.
ticker
&&
clearInterval
(
this
.
ticker
);
this
.
ticker
=
setInterval
(
this
.
update
,
10
);
}
else
{
console
.
error
(
"图片处理失败"
);
}
}
async
start
()
{
this
.
dicont
.
removeChildren
();
this
.
movesteps
=
0
;
this
.
startime
=
Date
.
now
();
let
actidx
=
props
.
actidx
;
this
.
gametime
=
props
.
gametime
;
this
.
showtime
=
props
.
gametime
;
this
.
gametime
=
this
.
gameTimes
[
actidx
];
this
.
showtime
=
this
.
gameTimes
[
actidx
];
this
.
passtime
=
0
;
engine
.
globalEvent
.
dispatchEvent
(
"pictures-time-update"
,{
time
:
this
.
showtime
,
});
engine
.
globalEvent
.
dispatchEvent
(
"pictures-time-passtime"
,{
passtime
:
this
.
passtime
});
console
.
log
(
"start-----------------"
,
actidx
);
this
.
rows
=
props
.
rows
;
this
.
cols
=
props
.
cols
;
...
...
@@ -92,7 +204,7 @@ export default class GameView extends engine.Container {
this
.
nselectimg
=
this
.
selectimg4
;
}
this
.
passtime
=
0
;
this
.
selectImgArr
=
new
Array
();
this
.
sucposData
=
{};
...
...
@@ -164,8 +276,8 @@ export default class GameView extends engine.Container {
}
this
.
lineShape
.
endStroke
();
this
.
ticker
=
setInterval
(
this
.
update
,
2
0
);
this
.
ticker
&&
clearInterval
(
this
.
ticker
);
this
.
ticker
=
setInterval
(
this
.
update
,
1
0
);
}
else
{
console
.
error
(
"图片处理失败"
);
}
...
...
@@ -201,9 +313,12 @@ export default class GameView extends engine.Container {
}
pause
(){
this
.
ingame
=
false
;
console
.
error
(
"拼图暂停"
);
}
resume
(){
this
.
lastframetime
=
Date
.
now
();
this
.
ingame
=
true
;
console
.
error
(
"拼图继续"
);
}
...
...
@@ -216,6 +331,9 @@ export default class GameView extends engine.Container {
if
(
this
.
ingame
){
let
passtime
=
(
ntime
-
this
.
lastframetime
)
/
1000
;
this
.
passtime
+=
passtime
;
engine
.
globalEvent
.
dispatchEvent
(
"pictures-time-passtime"
,{
passtime
:
this
.
passtime
});
let
showtime1
=
Math
.
round
(
this
.
gametime
-
this
.
passtime
);
// console.log(passtime,this.passtime,this.gametime,this.showtime);
if
(
this
.
showtime
!=
showtime1
){
...
...
@@ -251,6 +369,10 @@ export default class GameView extends engine.Container {
this
.
selectImgArr
.
push
(
selectname
);
}
else
if
(
this
.
selectImgArr
.
length
==
1
){
if
(
selectname
==
this
.
selectImgArr
[
0
]){
if
(
this
.
nselectimg
){
this
.
blockcont
.
removeChild
(
this
.
nselectimg
);
}
this
.
selectImgArr
=
new
Array
();
return
;
}
else
{
this
.
selectImgArr
.
push
(
selectname
);
...
...
@@ -283,6 +405,8 @@ export default class GameView extends engine.Container {
this
.
selectImgArr
=
new
Array
();
this
.
movesteps
+=
1
;
if
(
this
.
nselectimg
){
this
.
blockcont
.
removeChild
(
this
.
nselectimg
);
}
...
...
@@ -317,9 +441,14 @@ export default class GameView extends engine.Container {
private
gameover
(
reason
:
number
)
{
this
.
ingame
=
false
;
this
.
ticker
&&
clearInterval
(
this
.
ticker
);
let
ntime
=
Date
.
now
();
let
gametime
=
ntime
-
this
.
startime
;
engine
.
globalEvent
.
dispatchEvent
(
'pictures-game-over'
,
{
reason
:
reason
,
time
:
this
.
passtime
time
:
this
.
passtime
,
number
:
this
.
movesteps
,
gametime
:
gametime
});
}
...
...
src/custom/pintu/src/game/qietu.ts
View file @
d0b28e59
import
{
props
}
from
"../props"
;
import
{
loadImageByUrl
}
from
"./utils"
;
import
qietu
from
"./qietu"
;
const
urls
=
[];
const
picMap
=
{};
const
posMap
=
{};
...
...
@@ -19,6 +20,29 @@ export default async(url:any,type1:number, rows:number, cols:number,parent:engin
let
mwid
=
t
.
width
;
let
mhei
=
t
.
height
;
if
(
mwid
<
10
||
mhei
<
10
){
console
.
log
(
"调整222222222222"
);
await
new
Promise
(
res
=>
{
setTimeout
(
function
(){
res
();
},
200
);
})
return
qietu
(
t
,
1
,
rows
,
cols
,
parent
);
}
console
.
log
(
'图片'
,
t
);
console
.
log
(
"图片获取尺寸"
,
mwid
,
mhei
);
if
(
mwid
>
mhei
){
if
(
mhei
<
setimgwid
){
mwid
=
mwid
*
setimgwid
/
mhei
;
mhei
=
setimgwid
;
}
}
else
{
if
(
mwid
<
setimgwid
){
mhei
=
mhei
*
setimgwid
/
mwid
;
mwid
=
setimgwid
;
}
}
console
.
log
(
"适配后的图片尺寸"
,
mwid
,
mhei
);
let
picarr
=
{};
let
picnames
=
[];
...
...
src/custom/pintu/src/game/utils.ts
View file @
d0b28e59
...
...
@@ -19,7 +19,7 @@ export function createSvga(name, anchorName?) {
return
inst
;
}
export
function
loadImageByUrl
(
url
){
export
async
function
loadImageByUrl
(
url
){
console
.
log
(
'loadImageByUrl----------:'
,
url
);
return
new
Promise
((
resolve
)
=>
{
if
(
engine
.
TextureCache
[
url
])
{
...
...
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