From 2d0577f1f80b2c85dff0f59dbd08352cb31ef97c Mon Sep 17 00:00:00 2001 From: ccy <1292572728@qq.com> Date: Sun, 1 Dec 2019 22:54:48 +0800 Subject: [PATCH] Initial commit --- .wing/launch.json | 29 + .wing/settings.json | 6 + .wing/tasks.json | 34 + bin-debug/Ball.js | 36 + bin-debug/CXK.js | 100 + bin-debug/LoadingUI.js | 58 + bin-debug/Main.js | 345 + bin-debug/ScoreBoard.js | 61 + bin-release/web/191201225322/index.html | 102 + .../js/assetsmanager.min_2ef412b7.js | 1 + .../web/191201225322/js/egret.min_6409d128.js | 7 + .../191201225322/js/egret.web.min_d1451e99.js | 5 + .../web/191201225322/js/game.min_16249d0f.js | 2 + .../web/191201225322/js/main.min_c6c8057c.js | 1 + .../191201225322/js/promise.min_83a6a5d.js | 1 + .../web/191201225322/js/tween.min_6c5a88f9.js | 1 + bin-release/web/191201225322/manifest.json | 13 + .../web/191201225322/resource/assets/ball.png | Bin 0 -> 2174 bytes .../web/191201225322/resource/assets/bg.png | Bin 0 -> 365331 bytes .../web/191201225322/resource/assets/bg2.png | Bin 0 -> 182553 bytes .../web/191201225322/resource/assets/die.mp3 | Bin 0 -> 16762 bytes .../resource/assets/egret_icon.png | Bin 0 -> 6777 bytes .../191201225322/resource/assets/launch.mp3 | Bin 0 -> 10075 bytes .../resource/assets/paddle2_2.png | Bin 0 -> 10704 bytes .../resource/assets/paddle3_2.png | Bin 0 -> 10021 bytes .../resource/assets/paddle4_1.png | Bin 0 -> 17481 bytes .../191201225322/resource/assets/paddle_2.png | Bin 0 -> 10997 bytes .../191201225322/resource/assets/point.mp3 | Bin 0 -> 16718 bytes .../resource/assets/scale_intro.mp3 | Bin 0 -> 41713 bytes .../resource/assets/scale_loop.mp3 | Bin 0 -> 26701 bytes .../resource/assets/scoreboard.png | Bin 0 -> 17986 bytes .../resource/config/description.json | 5 + .../191201225322/resource/default.res.json | 80 + egretProperties.json | 25 + favicon.ico | Bin 0 -> 4286 bytes index.html | 97 + libs/modules/assetsmanager/assetsmanager.d.ts | 1522 + libs/modules/assetsmanager/assetsmanager.js | 2992 ++ .../assetsmanager/assetsmanager.min.js | 1 + libs/modules/egret/egret.d.ts | 15371 +++++++++ libs/modules/egret/egret.js | 25845 ++++++++++++++++ libs/modules/egret/egret.min.js | 7 + libs/modules/egret/egret.web.js | 9806 ++++++ libs/modules/egret/egret.web.min.js | 5 + libs/modules/game/game.d.ts | 2482 ++ libs/modules/game/game.js | 4817 +++ libs/modules/game/game.min.js | 2 + libs/modules/promise/promise.js | 1162 + libs/modules/promise/promise.min.js | 1 + libs/modules/tween/tween.d.ts | 1350 + libs/modules/tween/tween.js | 2095 ++ libs/modules/tween/tween.min.js | 1 + manifest.json | 17 + resource/assets/ball.png | Bin 0 -> 2174 bytes resource/assets/bg.png | Bin 0 -> 365331 bytes resource/assets/bg2.png | Bin 0 -> 182553 bytes resource/assets/die.mp3 | Bin 0 -> 16762 bytes resource/assets/egret_icon.png | Bin 0 -> 6777 bytes resource/assets/launch.mp3 | Bin 0 -> 10075 bytes resource/assets/paddle2_2.png | Bin 0 -> 10704 bytes resource/assets/paddle3_2.png | Bin 0 -> 10021 bytes resource/assets/paddle4_1.png | Bin 0 -> 17481 bytes resource/assets/paddle_2.png | Bin 0 -> 10997 bytes resource/assets/point.mp3 | Bin 0 -> 16718 bytes resource/assets/scale_intro.mp3 | Bin 0 -> 41713 bytes resource/assets/scale_loop.mp3 | Bin 0 -> 26701 bytes resource/assets/scoreboard.png | Bin 0 -> 17986 bytes resource/config/description.json | 5 + resource/default.res.json | 80 + scripts/api.d.ts | 448 + scripts/baidugame/baidugame.ts | 82 + scripts/bricks/bricks.ts | 64 + scripts/config.android.ts | 52 + scripts/config.baidugame.ts | 60 + scripts/config.bricks.ts | 55 + scripts/config.ios.ts | 52 + scripts/config.oppogame.ts | 59 + scripts/config.qgame.ts | 59 + scripts/config.qqgame.ts | 60 + scripts/config.ts | 95 + scripts/config.vivogame.ts | 59 + scripts/config.wxgame.ts | 62 + scripts/myplugin.ts | 17 + scripts/node.d.ts | 4209 +++ scripts/oppogame/oppogame.ts | 90 + scripts/qgame/qgame.ts | 90 + scripts/qqgame/qqgame.ts | 82 + scripts/tsconfig.json | 50 + scripts/vivogame/vivogame.ts | 126 + scripts/wxgame/wxgame.ts | 146 + src/Ball.ts | 27 + src/CXK.ts | 101 + src/LoadingUI.ts | 50 + src/Main.ts | 330 + src/ScoreBoard.ts | 61 + template/runtime/native_loader.js | 8 + template/runtime/native_require.js | 53 + template/runtime/runtime_loader.js | 8 + template/web/index.html | 102 + tsconfig.json | 17 + wingProperties.json | 9 + 101 files changed, 75353 insertions(+) create mode 100644 .wing/launch.json create mode 100644 .wing/settings.json create mode 100644 .wing/tasks.json create mode 100644 bin-debug/Ball.js create mode 100644 bin-debug/CXK.js create mode 100644 bin-debug/LoadingUI.js create mode 100644 bin-debug/Main.js create mode 100644 bin-debug/ScoreBoard.js create mode 100644 bin-release/web/191201225322/index.html create mode 100644 bin-release/web/191201225322/js/assetsmanager.min_2ef412b7.js create mode 100644 bin-release/web/191201225322/js/egret.min_6409d128.js create mode 100644 bin-release/web/191201225322/js/egret.web.min_d1451e99.js create mode 100644 bin-release/web/191201225322/js/game.min_16249d0f.js create mode 100644 bin-release/web/191201225322/js/main.min_c6c8057c.js create mode 100644 bin-release/web/191201225322/js/promise.min_83a6a5d.js create mode 100644 bin-release/web/191201225322/js/tween.min_6c5a88f9.js create mode 100644 bin-release/web/191201225322/manifest.json create mode 100755 bin-release/web/191201225322/resource/assets/ball.png create mode 100644 bin-release/web/191201225322/resource/assets/bg.png create mode 100644 bin-release/web/191201225322/resource/assets/bg2.png create mode 100755 bin-release/web/191201225322/resource/assets/die.mp3 create mode 100644 bin-release/web/191201225322/resource/assets/egret_icon.png create mode 100644 bin-release/web/191201225322/resource/assets/launch.mp3 create mode 100755 bin-release/web/191201225322/resource/assets/paddle2_2.png create mode 100755 bin-release/web/191201225322/resource/assets/paddle3_2.png create mode 100644 bin-release/web/191201225322/resource/assets/paddle4_1.png create mode 100755 bin-release/web/191201225322/resource/assets/paddle_2.png create mode 100755 bin-release/web/191201225322/resource/assets/point.mp3 create mode 100644 bin-release/web/191201225322/resource/assets/scale_intro.mp3 create mode 100644 bin-release/web/191201225322/resource/assets/scale_loop.mp3 create mode 100755 bin-release/web/191201225322/resource/assets/scoreboard.png create mode 100644 bin-release/web/191201225322/resource/config/description.json create mode 100644 bin-release/web/191201225322/resource/default.res.json create mode 100644 egretProperties.json create mode 100644 favicon.ico create mode 100644 index.html create mode 100644 libs/modules/assetsmanager/assetsmanager.d.ts create mode 100644 libs/modules/assetsmanager/assetsmanager.js create mode 100644 libs/modules/assetsmanager/assetsmanager.min.js create mode 100644 libs/modules/egret/egret.d.ts create mode 100644 libs/modules/egret/egret.js create mode 100644 libs/modules/egret/egret.min.js create mode 100644 libs/modules/egret/egret.web.js create mode 100644 libs/modules/egret/egret.web.min.js create mode 100644 libs/modules/game/game.d.ts create mode 100644 libs/modules/game/game.js create mode 100644 libs/modules/game/game.min.js create mode 100644 libs/modules/promise/promise.js create mode 100644 libs/modules/promise/promise.min.js create mode 100644 libs/modules/tween/tween.d.ts create mode 100644 libs/modules/tween/tween.js create mode 100644 libs/modules/tween/tween.min.js create mode 100644 manifest.json create mode 100755 resource/assets/ball.png create mode 100644 resource/assets/bg.png create mode 100644 resource/assets/bg2.png create mode 100755 resource/assets/die.mp3 create mode 100644 resource/assets/egret_icon.png create mode 100644 resource/assets/launch.mp3 create mode 100755 resource/assets/paddle2_2.png create mode 100755 resource/assets/paddle3_2.png create mode 100644 resource/assets/paddle4_1.png create mode 100755 resource/assets/paddle_2.png create mode 100755 resource/assets/point.mp3 create mode 100644 resource/assets/scale_intro.mp3 create mode 100644 resource/assets/scale_loop.mp3 create mode 100755 resource/assets/scoreboard.png create mode 100644 resource/config/description.json create mode 100644 resource/default.res.json create mode 100644 scripts/api.d.ts create mode 100644 scripts/baidugame/baidugame.ts create mode 100644 scripts/bricks/bricks.ts create mode 100644 scripts/config.android.ts create mode 100644 scripts/config.baidugame.ts create mode 100644 scripts/config.bricks.ts create mode 100644 scripts/config.ios.ts create mode 100644 scripts/config.oppogame.ts create mode 100644 scripts/config.qgame.ts create mode 100644 scripts/config.qqgame.ts create mode 100644 scripts/config.ts create mode 100644 scripts/config.vivogame.ts create mode 100644 scripts/config.wxgame.ts create mode 100644 scripts/myplugin.ts create mode 100644 scripts/node.d.ts create mode 100644 scripts/oppogame/oppogame.ts create mode 100644 scripts/qgame/qgame.ts create mode 100644 scripts/qqgame/qqgame.ts create mode 100644 scripts/tsconfig.json create mode 100644 scripts/vivogame/vivogame.ts create mode 100644 scripts/wxgame/wxgame.ts create mode 100644 src/Ball.ts create mode 100644 src/CXK.ts create mode 100644 src/LoadingUI.ts create mode 100644 src/Main.ts create mode 100644 src/ScoreBoard.ts create mode 100644 template/runtime/native_loader.js create mode 100644 template/runtime/native_require.js create mode 100644 template/runtime/runtime_loader.js create mode 100644 template/web/index.html create mode 100644 tsconfig.json create mode 100644 wingProperties.json diff --git a/.wing/launch.json b/.wing/launch.json new file mode 100644 index 0000000..ccc9929 --- /dev/null +++ b/.wing/launch.json @@ -0,0 +1,29 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": "Launch Wing Player", + "type": "chrome", + "request": "launch", + "file": "index.html", + "runtimeExecutable": "${execPath}", + "useBuildInServer": true, + "sourceMaps": true, + "webRoot": "${workspaceRoot}", + "preLaunchTask":"build", + "port":5630 + }, + { + "name": "Launch Chrome", + "type": "chrome", + "request": "launch", + "file": "index.html", + "useBuildInServer": true, + "sourceMaps": true, + "webRoot": "${workspaceRoot}", + "preLaunchTask":"build", + "userDataDir":"${tmpdir}", + "port":5630 + } + ] +} \ No newline at end of file diff --git a/.wing/settings.json b/.wing/settings.json new file mode 100644 index 0000000..372e43c --- /dev/null +++ b/.wing/settings.json @@ -0,0 +1,6 @@ +{ + "search.exclude": { + "**/bin-debug": true, + "**/bin-release": true + } +} \ No newline at end of file diff --git a/.wing/tasks.json b/.wing/tasks.json new file mode 100644 index 0000000..521f0c8 --- /dev/null +++ b/.wing/tasks.json @@ -0,0 +1,34 @@ +{ + "version": "0.1.0", + "command": "egret", + "isShellCommand": true, + "suppressTaskName": true, + "tasks": [ + { + "taskName": "build", + "showOutput": "always", + "args": [ + "build", + "-sourcemap" + ], + "problemMatcher": "$tsc" + }, + { + "taskName": "clean", + "showOutput": "always", + "args": [ + "build", + "-e" + ], + "problemMatcher": "$tsc" + }, + { + "taskName": "publish", + "showOutput": "always", + "args": [ + "publish" + ], + "problemMatcher": "$tsc" + } + ] +} \ No newline at end of file diff --git a/bin-debug/Ball.js b/bin-debug/Ball.js new file mode 100644 index 0000000..483bff3 --- /dev/null +++ b/bin-debug/Ball.js @@ -0,0 +1,36 @@ +var __reflect = (this && this.__reflect) || function (p, c, t) { + p.__class__ = c, t ? t.push(c) : t = [c], p.__types__ = p.__types__ ? t.concat(p.__types__) : t; +}; +var __extends = this && this.__extends || function __extends(t, e) { + function r() { + this.constructor = t; +} +for (var i in e) e.hasOwnProperty(i) && (t[i] = e[i]); +r.prototype = e.prototype, t.prototype = new r(); +}; +var Ball = (function (_super) { + __extends(Ball, _super); + function Ball() { + var _this = _super.call(this) || this; + _this.createScene(); + return _this; + } + Ball.prototype.createScene = function () { + this.ball = this.createBitmapByName('ball_png'); + this.ball.width = 10; + this.ball.height = 10; + this.addChild(this.ball); + }; + /** + * 根据name关键字创建一个Bitmap对象。name属性请参考resources/resource.json配置文件的内容。 + * Create a Bitmap object according to name keyword.As for the property of name please refer to the configuration file of resources/resource.json. + */ + Ball.prototype.createBitmapByName = function (name) { + var result = new egret.Bitmap(); + var texture = RES.getRes(name); + result.texture = texture; + return result; + }; + return Ball; +}(egret.Sprite)); +__reflect(Ball.prototype, "Ball"); diff --git a/bin-debug/CXK.js b/bin-debug/CXK.js new file mode 100644 index 0000000..340b7ff --- /dev/null +++ b/bin-debug/CXK.js @@ -0,0 +1,100 @@ +var __reflect = (this && this.__reflect) || function (p, c, t) { + p.__class__ = c, t ? t.push(c) : t = [c], p.__types__ = p.__types__ ? t.concat(p.__types__) : t; +}; +var __extends = this && this.__extends || function __extends(t, e) { + function r() { + this.constructor = t; +} +for (var i in e) e.hasOwnProperty(i) && (t[i] = e[i]); +r.prototype = e.prototype, t.prototype = new r(); +}; +var CXK = (function (_super) { + __extends(CXK, _super); + function CXK() { + var _this = _super.call(this) || this; + _this.speedBall = 0; + _this.status = 1; + _this.step = 0; + _this.shotStatus = 0; + _this.createScene(); + _this.addEventListener(egret.Event.ENTER_FRAME, _this.changeIkun, _this); + return _this; + } + CXK.prototype.reset = function () { + this.step = 0; + }; + CXK.prototype.prepare = function () { + this.step = 1; + }; + CXK.prototype.shot = function () { + this.step = 2; + }; + CXK.prototype.createScene = function () { + this.cxk = new egret.Bitmap(); + this.cxk.width = 40; + this.cxk.height = 60; + this.ball = this.createBitmapByName('ball_png'); + this.ball.width = 10; + this.ball.height = 10; + this.ball.x = 15; + this.addChild(this.ball); + this.addChild(this.cxk); + }; + CXK.prototype.changeIkun = function () { + if (this.step === 0) { + this.cxk.height = 60; + this.shotStatus = 0; + this.cxk.y = 0; + if (this.status > 3) { + this.status = 1; + this.speedBall = 0; + } + if (this.status > 2) { + this.cxk.texture = RES.getRes('paddle_2_png'); + } + else { + this.cxk.texture = RES.getRes('paddle_1_png'); + } + this.status = this.status + 0.1; + this.changeBall(); + } + else if (this.step === 1) { + this.cxk.texture = RES.getRes('paddle_2_png'); + this.ball.y = 30; + if (this.cxk.height > 40) { + this.cxk.height -= .6; + this.cxk.y += .6; + } + } + else if (this.step === 2) { + this.cxk.texture = RES.getRes('paddle_3_png'); + this.cxk.height = 62; + this.cxk.y = 0; + this.shotStatus += 0.4; + if (this.shotStatus > 1) { + this.cxk.texture = RES.getRes('paddle_4_png'); + } + } + }; + CXK.prototype.changeBall = function () { + if (this.status > 2) { + this.ball.y = 15 + 10 * (this.speedBall); + } + else { + this.ball.y = 40 - 10 * (this.speedBall); + } + this.speedBall += 0.15; + }; + /** + * 根据name关键字创建一个Bitmap对象。name属性请参考resources/resource.json配置文件的内容。 + * Create a Bitmap object according to name keyword.As for the property of name please refer to the configuration file of resources/resource.json. + */ + CXK.prototype.createBitmapByName = function (name) { + var result = new egret.Bitmap(); + var texture = RES.getRes(name); + result.texture = texture; + return result; + }; + return CXK; +}(egret.DisplayObjectContainer)); +__reflect(CXK.prototype, "CXK"); diff --git a/bin-debug/LoadingUI.js b/bin-debug/LoadingUI.js new file mode 100644 index 0000000..3510761 --- /dev/null +++ b/bin-debug/LoadingUI.js @@ -0,0 +1,58 @@ +////////////////////////////////////////////////////////////////////////////////////// +// +// Copyright (c) 2014-present, Egret Technology. +// All rights reserved. +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of the Egret nor the +// names of its contributors may be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY EGRET AND CONTRIBUTORS "AS IS" AND ANY EXPRESS +// OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +// IN NO EVENT SHALL EGRET AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;LOSS OF USE, DATA, +// OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +////////////////////////////////////////////////////////////////////////////////////// +var __reflect = (this && this.__reflect) || function (p, c, t) { + p.__class__ = c, t ? t.push(c) : t = [c], p.__types__ = p.__types__ ? t.concat(p.__types__) : t; +}; +var __extends = this && this.__extends || function __extends(t, e) { + function r() { + this.constructor = t; +} +for (var i in e) e.hasOwnProperty(i) && (t[i] = e[i]); +r.prototype = e.prototype, t.prototype = new r(); +}; +var LoadingUI = (function (_super) { + __extends(LoadingUI, _super); + function LoadingUI() { + var _this = _super.call(this) || this; + _this.createView(); + return _this; + } + LoadingUI.prototype.createView = function () { + this.textField = new egret.TextField(); + this.addChild(this.textField); + this.textField.textColor = 0x55c04b; + this.textField.width = 480; + this.textField.height = 100; + }; + LoadingUI.prototype.onProgress = function (current, total) { + this.textField.text = "\u6B63\u5728\u52A0\u8F7D..." + current + "/" + total; + }; + return LoadingUI; +}(egret.Sprite)); +__reflect(LoadingUI.prototype, "LoadingUI", ["RES.PromiseTaskReporter"]); diff --git a/bin-debug/Main.js b/bin-debug/Main.js new file mode 100644 index 0000000..a19d78c --- /dev/null +++ b/bin-debug/Main.js @@ -0,0 +1,345 @@ +////////////////////////////////////////////////////////////////////////////////////// +// +// Copyright (c) 2014-present, Egret Technology. +// All rights reserved. +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of the Egret nor the +// names of its contributors may be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY EGRET AND CONTRIBUTORS "AS IS" AND ANY EXPRESS +// OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +// IN NO EVENT SHALL EGRET AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;LOSS OF USE, DATA, +// OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +////////////////////////////////////////////////////////////////////////////////////// +var __reflect = (this && this.__reflect) || function (p, c, t) { + p.__class__ = c, t ? t.push(c) : t = [c], p.__types__ = p.__types__ ? t.concat(p.__types__) : t; +}; +var __extends = this && this.__extends || function __extends(t, e) { + function r() { + this.constructor = t; +} +for (var i in e) e.hasOwnProperty(i) && (t[i] = e[i]); +r.prototype = e.prototype, t.prototype = new r(); +}; +var __assign = (this && this.__assign) || Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; +}; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __generator = (this && this.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = y[op[0] & 2 ? "return" : op[0] ? "throw" : "next"]) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [0, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } +}; +var getTimer = egret.getTimer; +var Main = (function (_super) { + __extends(Main, _super); + function Main() { + var _this = _super.call(this) || this; + _this.ballT = 0; + _this.gameStatus = 0; //游戏状态 0 未开始 1 按压 2 正在投篮 3命中 4积分 + _this.powerEarn = 0; //力量 0-1 + _this.ballCount = 10; + _this.totalPoint = 0; + _this.addEventListener(egret.Event.ADDED_TO_STAGE, _this.onAddToStage, _this); + _this.addEventListener(egret.TouchEvent.TOUCH_BEGIN, _this.onTouchBeginState, _this); + _this.addEventListener(egret.TouchEvent.TOUCH_END, _this.onTouchEndState, _this); + _this.addEventListener(egret.Event.ENTER_FRAME, _this.onEnterFrame, _this); + return _this; + } + Main.prototype.onAddToStage = function (event) { + egret.lifecycle.addLifecycleListener(function (context) { + // custom lifecycle plugin + context.onUpdate = function () { + }; + }); + egret.lifecycle.onPause = function () { + egret.ticker.pause(); + }; + egret.lifecycle.onResume = function () { + egret.ticker.resume(); + }; + this.runGame().catch(function (e) { + console.log(e); + }); + }; + Main.prototype.runGame = function () { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, this.loadResource()]; + case 1: + _a.sent(); + this.createGameScene(); + return [2 /*return*/]; + } + }); + }); + }; + Main.prototype.loadResource = function () { + return __awaiter(this, void 0, void 0, function () { + var loadingView, e_1; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + _a.trys.push([0, 3, , 4]); + loadingView = new LoadingUI(); + this.stage.addChild(loadingView); + return [4 /*yield*/, RES.loadConfig("resource/default.res.json", "resource/")]; + case 1: + _a.sent(); + return [4 /*yield*/, RES.loadGroup("preload", 0, loadingView)]; + case 2: + _a.sent(); + this.scale_intro = RES.getRes('scale_intro_mp3'); + this.scale_circle = RES.getRes('scale_loop_mp3'); + this.shotSound = RES.getRes('launch_mp3'); + this.bingoSound = RES.getRes('point_mp3'); + this.dieSound = RES.getRes('die_mp3'); + this.stage.removeChild(loadingView); + return [3 /*break*/, 4]; + case 3: + e_1 = _a.sent(); + console.error(e_1); + return [3 /*break*/, 4]; + case 4: return [2 /*return*/]; + } + }); + }); + }; + Main.prototype.drawBallCountAndScore = function () { + this.ballCountText.text = 'x' + this.ballCount.toString(); + this.pointText.text = '得分:' + this.totalPoint.toString(); + }; + /** + * 创建游戏场景 + * Create a game scene + */ + Main.prototype.createGameScene = function () { + var stageW = this.stage.stageWidth; + var stageH = this.stage.stageHeight; + // 白色背景 + var shp = new egret.Shape(); + shp.graphics.beginFill(0xffffff, 1); + shp.graphics.drawRect(0, 0, stageW, stageH); + shp.graphics.endFill(); + this.addChild(shp); + //篮球场背景 + var sky = this.createBitmapByName("bg_png"); + this.addChild(sky); + sky.width = stageW; + sky.height = stageW / (1102 / 1172); + sky.y = (stageH - sky.height) / 2; + this.cxk = new CXK(); + this.addChild(this.cxk); + this.cxk.x = 349; + this.cxk.y = sky.y + 231; + var ball2 = new Ball(); + this.addChild(ball2); + ball2.x = 156; + ball2.y = 325; + ball2.alpha = 0; + this.ball2 = ball2; + this.touchEnabled = true; + this.scoreboardImg = new ScoreBoard(); + this.scoreboardImg.touchEnabled = true; + this.scoreboardImg.addEventListener(egret.TouchEvent.TOUCH_TAP, this.restart, this); + var tipText = new egret.TextField(); + this.addChild(tipText); + tipText.textColor = 0x1aad19; + tipText.x = 200; + tipText.y = 900; + tipText.text = '长按蓄力,松开投球'; + this.pointText = new egret.TextField(); + this.addChild(this.pointText); + this.pointText.x = 400; + this.pointText.y = 5; + this.pointText.textColor = 0x333333; + this.pointText.size = 28; + this.ballCountText = new egret.TextField(); + this.addChild(this.ballCountText); + this.ballCountText.x = 60; + this.ballCountText.y = 5; + this.ballCountText.size = 28; + this.ballCountText.textColor = 0x333333; + this.ball3 = this.createBitmapByName('ball_png'); + this.addChild(this.ball3); + this.ball3.y = 5; + this.ball3.x = 25; + this.ball3.width = 25; + this.ball3.height = 25; + this.drawBallCountAndScore(); + }; + Main.prototype.restart = function () { + console.log('restart'); + if (this.gameStatus === 4) { + this.removeChild(this.scoreboardImg); + this.gameStatus = 0; + this.totalPoint = 0; + this.ballCount = 10; + this.drawBallCountAndScore(); + } + }; + Main.prototype.onEnterFrame = function () { + if (this.gameStatus === 2 || this.gameStatus === 3) { + this.ballSport(); + } + if (this.gameStatus === 1) { + //蓄力过程 + this.powerEarn = this.powerEarn + (1 / 66); + } + }; + Main.prototype.onTouchBeginState = function () { + var _this = this; + console.log('touch begin'); + if (this.gameStatus === 0) { + this.gameStatus = 1; + this.powerEarn = 0; + this.ballT = 0; + this.scaleChannel = this.scale_intro.play(0, 1); + setTimeout(function () { + if (_this.gameStatus === 1) { + _this.scaleChannel.stop(); + _this.scaleChannel = _this.scale_circle.play(0, 0); + } + }, 2200); + this.cxk.prepare(); + } + }; + Main.prototype.onTouchEndState = function () { + console.log('touch end'); + if (this.gameStatus === 1) { + this.ballT = 0; + this.gameStatus = 2; + this.scaleChannel.stop(); + this.shotSound.play(0, 1); + this.cxk.shot(); + this.ballCount--; + this.drawBallCountAndScore(); + this.ball = new Ball(); + this.addChild(this.ball); + this.ball.alpha = 0; + } + }; + Main.prototype.ballSport = function () { + var _this = this; + //篮球弧线 + var speed = 0.015; + var t = this.ballT; + var p0 = { x: 350, y: 445 }; + // let p1 = {x: 250, y: 200}; + var p1 = { x: 250, y: 200 + (0.5 - this.powerEarn) * 320 }; + var p2 = __assign({}, p1); + var p3 = { x: 100 + (0.5 - this.powerEarn) * 160, y: 400 }; + var cx = 3 * (p1.x - p0.x); + var bx = 3 * (p2.x - p1.x) - cx; + var ax = p3.x - p0.x - cx - bx; + var cy = 3 * (p1.y - p0.y); + var by = 3 * (p2.y - p1.y) - cy; + var ay = p3.y - p0.y - cy - by; + var xt = ax * (t * t * t) + bx * (t * t) + cx * t + p0.x; + var yt = ay * (t * t * t) + by * (t * t) + cy * t + p0.y; + this.ballT += speed; + if (this.ballT > 1) { + this.ballT = 1; + } + this.ball.alpha = 1; + //结束这一步 + var stepOver = function () { + _this.gameStatus = 0; + _this.cxk.reset(); + _this.removeChild(_this.ball); + if (_this.ballCount <= 0) { + _this.gameStatus = 4; + _this.addChildAt(_this.scoreboardImg, 10); + _this.scoreboardImg.x = (_this.stage.stageWidth - _this.scoreboardImg.scoreBoard.width) / 2; + _this.scoreboardImg.y = (_this.stage.stageHeight - _this.scoreboardImg.scoreBoard.height) / 2; + console.log(_this.scoreboardImg.x, _this.scoreboardImg.y); + _this.scoreboardImg.setCurrentPoint(_this.totalPoint); + } + _this.drawBallCountAndScore(); + }; + if (this.gameStatus === 3) { + this.ball.y = yt; + if (yt >= p3.y - 1) { + this.totalPoint++; + stepOver(); + } + } + else if (this.gameStatus === 2) { + var isHit = this.ball2.hitTestPoint(this.ball.x + 5, this.ball.y + 5); + if (isHit) { + this.bingoSound.play(0, 1); + this.gameStatus = 3; + } + this.ball.x = xt; + this.ball.y = yt; + } + if (this.ball.y >= p3.y - 1 && this.ball.x <= p3.x + 1) { + if (this.gameStatus === 2) { + this.dieSound.play(0, 1); + stepOver(); + } + } + }; + /** + * 根据name关键字创建一个Bitmap对象。name属性请参考resources/resource.json配置文件的内容。 + * Create a Bitmap object according to name keyword.As for the property of name please refer to the configuration file of resources/resource.json. + */ + Main.prototype.createBitmapByName = function (name) { + var result = new egret.Bitmap(); + var texture = RES.getRes(name); + result.texture = texture; + return result; + }; + return Main; +}(egret.DisplayObjectContainer)); +__reflect(Main.prototype, "Main"); diff --git a/bin-debug/ScoreBoard.js b/bin-debug/ScoreBoard.js new file mode 100644 index 0000000..be6e3a9 --- /dev/null +++ b/bin-debug/ScoreBoard.js @@ -0,0 +1,61 @@ +var __reflect = (this && this.__reflect) || function (p, c, t) { + p.__class__ = c, t ? t.push(c) : t = [c], p.__types__ = p.__types__ ? t.concat(p.__types__) : t; +}; +var __extends = this && this.__extends || function __extends(t, e) { + function r() { + this.constructor = t; +} +for (var i in e) e.hasOwnProperty(i) && (t[i] = e[i]); +r.prototype = e.prototype, t.prototype = new r(); +}; +var ScoreBoard = (function (_super) { + __extends(ScoreBoard, _super); + function ScoreBoard() { + var _this = _super.call(this) || this; + //任务移动的方向 + _this.currentPoint = 0; + _this.maxPoint = 0; + // this.addEventListener(egret.Event.ENTER_FRAME, this.onEnterFrame, this); + _this.addEventListener(egret.Event.ADDED_TO_STAGE, _this.init, _this); + return _this; + } + /** + * 根据name关键字创建一个Bitmap对象。name属性请参考resources/resource.json配置文件的内容。 + * Create a Bitmap object according to name keyword.As for the property of name please refer to the configuration file of resources/resource.json. + */ + ScoreBoard.prototype.createBitmapByName = function (name) { + var result = new egret.Bitmap(); + result.texture = RES.getRes(name); + return result; + }; + ScoreBoard.prototype.setCurrentPoint = function (point) { + this.currentPoint = point; + if (point > this.maxPoint) { + this.maxPoint = point; + } + this.currentPointText.text = this.currentPoint + ""; + this.maxPointText.text = this.maxPoint + ""; + }; + ScoreBoard.prototype.init = function () { + var shp = new egret.DisplayObjectContainer(); + this.scoreBoard = this.createBitmapByName('scoreboard_png'); + shp.width = this.scoreBoard.width; + shp.height = this.scoreBoard.height; + this.width = shp.width; + this.height = shp.height; + shp.addChild(this.scoreBoard); + this.currentPointText = new egret.TextField(); + this.maxPointText = new egret.TextField(); + shp.addChild(this.currentPointText); + shp.addChild(this.maxPointText); + this.currentPointText.y = this.scoreBoard.height / 2.5; + this.currentPointText.textColor = 0xcc0000; + this.maxPointText.textColor = 0xcc0000; + this.maxPointText.y = this.scoreBoard.height / 1.65; + this.currentPointText.x = this.scoreBoard.width / 2; + this.maxPointText.x = this.scoreBoard.width / 2; + this.addChild(shp); + }; + return ScoreBoard; +}(egret.DisplayObjectContainer)); +__reflect(ScoreBoard.prototype, "ScoreBoard"); diff --git a/bin-release/web/191201225322/index.html b/bin-release/web/191201225322/index.html new file mode 100644 index 0000000..3d8ce27 --- /dev/null +++ b/bin-release/web/191201225322/index.html @@ -0,0 +1,102 @@ + + + +
+ +V64zIo^mt%V$7~Hu6$~PBE>~5Z}kyu_>9Tv_>;F!f~P;* ziM}og5X__-WJ--Hm;cOd!=P@hd_%O*RX?%PzJ)R3mizsZ%F&+4k|;rKwg!=(uaTim1|iqeB#$VSl82B zBgInHODh?}c~=Lj)E6Hv8jDV#${$$>SW_78aSf=AsWW#yed4k-@gr56HQwL~E%aTm zvf}rf5~7A3R~k;meeiLLv@VS;=Y9}ck_|r~Gf Ci7K zV&btCIaZ>r?w@AOl#)2%Ck9BcD26K~aPedjFZaYRGp%R6`HQkeZ !Jl-!roEYGv1w%cq2OEF3!NyU8oJtI8bEp*Azc0+ZvXv`O%qo0&%6Z zWqiXX)8k84Omtpbn+Wlx&uY%3%c4z5E=u%XqPp>!#qSD|n>v}9`nk+H;`vp~>9LDL ztuKA-a-Xl7X9grZx#1G?TZnD%lf{ABh}hngfMd+9Qu{~MzZNAOo;!@iRTuBLwNwu6 z5=1Mhl@53uXGi~Aar&r|1C`L+)cJ4~d8eq;Nb`ayB fCw{O4TK%dwtiAY2W;k`^w}C$`)qLtK>20v%al? zd&-NnI9Gq|D6%GY CTk& zC|j@eaBXdoB~aO0aq?@!j*)j!H`qu;W5W1@yKR2H0ZOl|_NWZ6SWN?Jo)0>&zXAdC ziWvC(lP?*>3&6}-yEKa(m=o9vrIxz0=$^g%qoPp{Ahf#!u3LyCeY o+)SA?^lzVK<%yM==MsSpS zt=%p&*qGN4FVxm#($;*at Cs~8Nv}(*5QsWxg%p?c`zl)Y>WJp;0D4X4&u^a42W^?%NcXw^;N@`1i^1+p?>SPj zj&ySWL$#i%u-F+K+v!sEqAEJ7jamzG%oP zEOg^TECvAQew+U69o8tVX^BTw8CD+wCU;Q2+y5gzx$*_^M_Dk@;3y-Ud{U;-;pin@ zyo~;7n5*B6$-nCE{6UI5$GmvX2>+O_{X7~xVh0w!w0d-e+Ahkmowtgk8yC)BbBw>+#FZRGI4Qv;5HAj=fl}&l?IczFlojg zi4o7nx^fMByA(TgEySNbcZ3zb;Pn^q6VKeroC>V@^&x5Bl8CH#SIue62>nB8VE_N{ z_IGh7qGP@cnk^dxw9$vzjC1FM7L!>LYO{@Y^ve$BBCp-ueX@DUlPj;Whd<(1eH@Q` z-K*)LuR5<}FHbs)8(b%^d=qeZc4{Yh?>$Q_8Ml7u%n;Q+ER!wT%{G6Za5#$Zs!bH1 za!zrbqdLcgm-m>wP&$YOpxKZUUpdKS@~~6NstN|^gE*aJ%g6T?&;hq*Kfi$Y%yQhU zb#-wmB9ysg %J6aMEQ8kdJ;)#lu{?Ktkxm{r?QEgP$Y*f%qWK4VqQ qE9rdZ`&V|GeujqkBJPK4-^T@4d$|j~D!>JTS zvClNsuX>It&17(va%t~y8S-%K203IpejNMJKJ%frl ymgOr9THjTv&Li$$?(AG`u7VJ8 Z*nv-`xA6cPINwDpGv~k_ zKaNaSH(Yi}-8|c?PJo{hFcOATWdw|Kyruv%h5){&Cq}rY8*p{YF??i&Xs_fjEPe7F zxl&)?K+-|(t5UHRu$|dF*p|v-E$Xe(-pL@Z#Z{+eq7ks^0z! nxi&vaCHrG4G6(dbIbZPE_e9~-8? )8}VwjIKFmMqxx2kGt1NVr)Q9t+g*%WHhPPY8Ygc*$)}P` z0iuK|AegNdmmmP&CjDAD-6X0UQUV8NH3BoKik{hJh<9EN&R@#3<2A!$vHebb-WrRM z5-*C1^Lr`644fRCW`u~S#6y3t#wF~U__AgA%Eg--eredTo8g`Rmav)Fl} >I)~@nJ8tbQyL`t}QXj`!!xnQZ2fXwsq^t_xIfcc`+s4F!fgz3Y zZ!mx5i)*nO D*MYJf-xJ{Hh_~QUk8)@s zbi_*JuYhsfsMq(9TJYy-HNH$9S18lt_zg@2A6F`^2(nmW2l-)L%0Vci$G1Dhj)0|d zEK4QnfaOaZ`1J^|g1{5zSIsVaM32SsPn+N6Q)<$%NGrZ*T$9#Yed4hem0w5Jq%uBS zB{H|W0mX(S){}5O5K*@`Y|g$_J!q1&%2gn}B_mibIB);!ryG@zi>!G70e&tVjRn~F zRp77NaW3+CRbqLv-o<>Pb!d$q3#lq`-gy&7^*Sj-VbBHdy!RqAGB7^$BN}ia=_jJn zo3fQxT==Q()#6)B`P~Vr9h)2G;>J~Ln_7uqsq8Ai)xp5`3+uHy0m%mhm~YrhE@;=n z&bG+MOTxZQU>i!pe%huT=+Rx}9xf*HQ1gB0r-J!@v9xo8#|xAkapI1>ytlwY7X4hk zo8K7rYE#A r6ZklemnV~fVZ@{pXmAxU81gX$%i;}rj(8MT zI1RI8hj<6=QQ{VE79%%huXjn$W&KP4I(FYfz>3EEoF H7PlwsUJ#9KpcE*i2^SW+Rc&N{E{c-C7(Y z!>Ed7- 6JCHr4%}<=@1bJAh0Virwm@sFXngFZmr_qu{MK|565E&*RZx_+Xf{z0Sp? zkP=J8SWAD^V|1yg!(#94O~Q$Rx_|!Ba<;DVw*Hi zdB#&lV~fQgPw}zAP1k`%EWLF{^1PIkRC!@b9h`j`7lJ{yNKuu;VqqVHR$7fO(gIs$ zc==?#K6y>SW7X7syaqkre-4ZT7r$Q`tF9)DjQp@H*5t-I4vxqp0w%W%9*hDohVRMN z)>e1}2^Jtn>#mh923mxlr+R2&!G9+3_w?$Ho5t9*_{^`SFQZTGeRm9H)bu6BQ$~ia zbn6&5469}=QAi4i(-Yu^><1|etLxlvH)CGuQ=LA?q<{K&GaXsDfZcL@27*pw=k?#r z%n=(4ZF%m9@!Ke@QJW#eR9bs%&1P)v6M!{ufS~Jw@f(Vlv@|p{`+rm@b(E#z&kHe7 z0isg#V-zfi??3|vE{fLOZisRJwue=n@sMK}#Z(c7&VAT;@^8ubB;Ah-C;f_%nPNe2 z0CW}$J3+H@HGFA=QG3*EuO(uTu(C*SSouBNnEPu(pX$#q0=BQW6e7a|9G!H!A30m* z;!5pUY~GQR)Wu-+r1uKk&hKj4oWhs`WzrqGhm@@dcQX!uv dhI*FaZx^ zqT{R8Ex>`R_CmJhSiPLwZ8caNHDfUq7Cco$JWz9ov3?IF1nL@ D+7@c_E$dAeykB_)4#HSjvDig37i;))dkKXNx3adIUUb zhWT=MIVOK?eWrBZPm`VbWz2y6{57HN2fo$FAC;oq2~_U`jJvP=)4heQW*I 01YketjOi^ho8>xpbrO>3#dj8929NQuAVGLt1lM{Gg z$beh8ay=o##&emgbJVy_Ywbo@4I!(i_UG*=FIw4DDrt2-^b9k*dm!Sll SN{Gn +S$E2hCp>;2bJdm jd1E`5n ztjL56@O@_muVMYf(#6t63s}r#v)<`%geuvYtTC5Kz>`UcriPiA4nNdc{iu&+CuQxRhf9zcj+>`Zu-iIIG zeNf|H1MQNwvX~JTQ0dLt+hILf%I2|`!>{A;VZd7ZyH2Xiug!lKLI7vr2lyB*rtip{ z16;K=IA8QGc_bwS8 zMH56=_@ zq6gIdk1WP6_b>j8pD0duu#Nc?%_i5KthSnCT+^3+6hltBN)0U|Yg&(&Hc@jz8Ccp- zenvBF4zq;RYX=dsxtiy~Bkbje*s`*+hB_QlVCm}1I&Z44agJtr0)K9S3 DN)i_g3-@#Iiv@fW&y4d4#mk5g~>Opj1UU#8;)`ESqrn(l%LQI-HM0G9{5 z{55k)swEG)GMy1pV|nzKoeU4NH_qwIgBa?(=j$==2^s4+#t6ZOo5uA+QY3<2y|FpO z=do_!NP4d`55J7%SHhX i>GBu$hnt*oXxP zTArK3@(3VP2osaMNipt>cTpJf`}f#WF&;DtkWZm==^pZ{f5#e>z>L|qBvF9`2ak?m>H*Zd~)d8ZSxTo z9uP}`cI<11b;$&B@)WoV>1(G&)!M%?0h`??GF5tPN6?4UBVRvi1{(KrFHaCqyQ-_) zUOUhQ)xpen7FdsFDF# PQz-ZTHpc9Kq`4^Umf zKF98EP?Tn`m3-cIu75%IEG7?JO3T3WBWlXUdJoBdSpYh%nh|z_3*gv;c6N5X%@H`r z<>Otq86M7&9ikRmGL=37z$N}(hZg`2_kba2oD%Uaps`c5^shX23n})XVW}L%y43ZL zJm?E}a22MyCF1-HT}xXT)rbZl=D1h-f ?ImZDW)=KHEC+tv?%b@+|!L58}WT8i79%PcGUR+LN@m;wQQ*}jfg7n6c#)m zJzz|wH)!md7@gdsg2WLrjONm$ud~|Zb(KMtRjujd(iemvGej!YsLqn{cbz*&@6u!7 z8Fn;l#VQ#&=!`#Q5SJ$S7^Y TbvAROdbai6^)BR@5(FBwR8s0#E8f^1~ z6U{7IBBUKU3IxOvvX@}u637zQXltrJkJAA7PvYhhuphu@K |$ zsv?THyQG`y4!a-hO2ty!+crTUNd0dv2ZLPpB6(ac7rjGD_=70Sw%jAjI z `W3@w`YsTLZ#f=ZrFIz#k!5@B&zi5DfHT7xUS8UV>%gGW64zW z7`NPmpx6%%4_-svzo0t3L|Ie7mz;F@w~YY*|I9HY{|udsJT_6jhw`orJo3N)JC-AL zB+EXgOg3yBk9|G-!dc1p2TG1sgHO+J$+bR6xz(4V=u=LAd8Rlhg{rLb<0631Pw~+3 zW8<--0hibfIRcXXat- TougrmlL#rkan<@Im2uw};EH-T-myb(-Bb;}WqW)3=~o{X zCgfD8hRPyv;6Mk8y}f%JalNh4ZIOnO?*A5zUWSh#PZJZ3OdjM-!>YMe7KFs-kSO8n z|I1k%kE8#;2bu}3^4fM?qsaACQw#5+-F;G+PitfScmcMZ$~Y`QY`FxS oI zRy3xtP8GT;$Q?IVAsX>fuH8Ze<0c1QFt_;6`lA1`Z2;eXy0hekSO7APSb}o>02up~ zeFCfXSSqeD#y$53=_2H(^ip NmGfQ}@`}@~gv7@u2;+hmsm4$It z9hSNd)F$}1GbM$_R3h&-WaI4T^VR<}U|CR)aV6PAk8NzN^Fn4gb e8Xz8UCS(hx-Vh--*UUA}nhD{Sdss}k~JP+rWoYU%-hF`Wx7H!5C zCTCY@6=+;dgRC7%j^-i=xc((XlF#1wo#B^2E@-MkDDiQa_g! G)i>-Gl25w!)QF(&a1F>K&~*! zMr_v($~r9mR$UjUh-6ZimXdn;?s9K`j_NVNASc%hx(q7fmi*s#dLtU07Q$v81H3b% zK=T<&k&A8asZ2`6i>#);DV$$*#m;Qf(-$+RzMZ1oj{N55Cwfu(fGN6zuC)Q>k<&Yt zYu}hsV0Ay^eP6lCAFaKDPI-;T(l)Jc=USxyiJj!PfW?nGV%Y%fiKl~q9L!C+VtOAG zk6{Z9pj#JsWjByz2{ d~RD5fW2-}CnoFkG1sClaDvX6(^xKfu4`B%6^kCrboydwa+xU8^GBv^@2sPF z_cH1zG$q0UO8hH9QsR~~S~?6pJVG|t$(W3K%#RE^@i)qvtvj}PmHjC)PU)zPFzN5V zQA;HQx)YSu3EL1yRDKA~<4_R#C(8$JH>|FHB NYNetk{;%+;)vLwPLTAHN`7? zEBDvih~M+73 T7%^fsW5havmn*-X3(P&2W5<-ko& zK3C*>6w|Mmi$eCKM?EYIBHWt&_6TF6MArc$Zqxykam=yq{8N9+ioxFxu>LQak|kij zN@bhGu+!FJnBUVBmxa?Sz1qX^zu+tX$>rLF07%)l9S0xNFsT0t$Qo43Ih>E_r}WOC zYQFmDwXksrg1m48*q`sW`8qc@cjQComhJ33*@}gmFyFsEZrfF$%VNo12~6yeqZogB zz&Rw%#$XIJ7d01qEovk0t^u)JOHgp0R%fw?*vYD9z^cPD-@QJZve8TeE-CY-Z1!lo zi~Ag9F53!K^(&AEE&8V7cS#h@=MUCsd `VXt!RBr+SD&Az29{ zL{NLI5u+YkS=_S_vr=DX^IGARp~1v|Qq{j_mH5! &?R4sB){ikrX^>=*6J=d+f9yV{=SYo#GSVAD{`Wy^og ztKp}{ HAXSiHgs%p~bxnWtYPyWY zonn~kjn2KOSC>~Mv)U8iJE?4Dp0g6gO~^|9^-pMUI93%z9Z&$_bNf&OPrIG{)qr$A zFOl3E%5lJx1QBEuYplJN#w!rgjQ)N5{+C)+;vT;&ASTrqGmp!@bJQ5~e7o_(T7Joe zi?d#<{^3GVyf}JFYW!ztlYNETkPh0%er>pcne8W=wqeKD(3+6d5XK~4lg|v3=u`Wv z!)V#gk Zx$Ka-gZLO3rPpVBU@49Xf}9kU8N(r#Z-)Ocy>Nejsppitc{K zc^xvS@$K)9n|JI*wpH0XP |q$*|icZ% ) z!rkBV`rtozBzgi Z~Y9WMZz0%KH8 zsQD>Hqop9e#AnLrHIcz4$S5R}X9+ILlqdIjY%=Ix?_xv2BR2*(k?r>Ze@06;EjyiP zm)0gv>6!ECo--JVaYHUCvt0lFs|s4XUcGLJL#<3!YQm>4HN1((XklM8`<9WSI3o-y zoMfBo;wv2&b aLN$=5rMpb3P1S*F(^kG#hhaP2@Jc6B#1=hkd6MQrIhZzFnD zvsE8#_TV0$($o`huKNDp>sQg4ObI#gxLfDsjt36sZ-5LSP;+?w#HQ-u4$U1k5yxaX z#FNAw2cNV&x;6lMjreL@IK+E(z26DFET85OoPCpqiQbptn7o{dw+m);cqVVPR;uC{ z<}OkzHj0%V^L7b((Hil&A(Ry@jkt4-XF+GBy)m)e!5-^uD(@-ol pv*>l5kq zwZAW@cw-zP4&_*1IP0+OMvtOrJ?4saX!E10!DMsbsF>1$JnT0NV+0+OUFthMs-dJt z7wOI$sd!8!=Cel~^gVPPnl-wQO~NNRl$F`H`R9iY-mAw;LCh|Ex( Qo+9%{nSnEe}u9c@s-Y6oxH*_b8q6-#M%s>-Y0pJR2?lspI@T z8As2=?zNCLe y3+2qowbHZWXAUQyGN8BG}C+IX#vPW9w#2P^9=5GC}G2gNlu9 zrKLwo7W`Uvvhep-E5_t}VckC41SIcZ1iK*63-rozmAK-In|<_l;M!;#yux>gB8@r` z!=`Pu`*P3XzI7XpS2C_$cIrPVXZSJYEI4M}fQj-M8+!Z+WFZOM;k!5O@goI$0A{ay zh2OP6eh>n(2v<+SRk4bE&~Yoyfa&U;*_O#)yRE&zEIbpC9_T6Duztk7a?z-7isj^u znIZa<6ReO6h=6CH2cT!rN#J(j3_GVtH;aLe_wKa(D=Fa2j0!c(;$EBXdF#E6!R# $v;@TxPFs3&i`=i~eM0e%S;>T+k)q@6?Cs4>l# zofayNFyvdVTCF|ns%;U@>$BO_8trAbr~Lfzm@#TWI@ThyM*b%#Jr=XBrU6^Jo`)7V zj`-0hCgGqk40{O&93ej;cv3Fld_^Z1VkTp+Fy76&16qJsyvc`O;_G;56 ;w=|OXqyoa=`JsmAk+U~H ze?=>?X9=-5Rx}ZFV?zVg(kVOtThKCe{c+XfdB^+h*#|hA?A-$Hzf+cXK;abkXY*75 z?$<%XDspER;UJpUthpH(lb?dTKQX^iz5FBO+7mPy!}rUv4uT>1+Cov10bI3?w@t1e z2%r_9H42)Src+^BT=W8+a8JXKX6f(Otp>0}Ebr}toHwGKPa7pKTqw{&flIj5xPFxq z$io%^#vqk?T^)dCsR5n!G?!jq>%5M*z*jYiPEvR=ROs)$TPFy$oBiq0Y{3Q8rP;bq zb#X2lS8O6Ev!XtHq;9{-jZUR8g{|Jlt~|xT{_j>pW$v}I(t$rhWC)8tM_jmv%VL`J z!5mXRcxaa2-9tneF1%Hm;{VOCWR_I6t{6J5F1sO+nXCx0EXWS?Sks9sC@48yk*I_^ zsy%Ts`5+=uWaSwN;$x;9AdDnBZ-^4npXb=Td)O@UriKTqZ8?B@$`g?(yq0vm8b5#v zkKIV-xfab2QqkQHI9Z2Eq%4{^v~`Bf+MjN6e>VkI_J7W;TLN%q=}(o&0x+}!&d2bG z{U(eG*Zn0Skls-Sy;yH+hn!SUP3dwAabz?*c{@<%<$&8l0muz~f?~8>sT*)dxwZ~> z{_Z2;Ei2@EP85@sXUlwAAojs-+Xkyy^u~09Z-49lBRdVxEJj}0tQ>g+7qd;Me1IX` z2y3hS9KH&J%Ik!Cd9IqSG=zQ$ZALUS6jmzBd$vTZ-U9C7(6fVUV+GjlHIz->ot!A# zTDQCpuJPE7J_5$`=ti-1u|=2$Ji^L;T)AaZU)6%g$iw@toQRVj)mXa8WgKHJ>BAsF z+Zd{)k8P@xbxz$wD>@r)%%hx5qH0qm)^g8D@4h$%m4Mz#hLqP`nv}aEkNkN;f}O|F zV}`8vjXj)l4QX|_c{-vZZEjZt=h_%AYdxYNoOX7jE=A;n+^40VF4y%GWfIAE-3jCZ z DLs91wVZ8c?yOy#KPJ>a#Do2|^xn#(jpn8C z+aZj>FEB#lcc4%QtZlGI!qO@A7Q_wu**0%XKznBD{lgle$?N7qG}l%_A7^X#E#8)0 zdG7#(m3>pL3rIuq*{X>@=lcjOYl#KWi$IX_FocbyZ+gEtQQ~$CLzZOFdyBj59Sm~0 zr`_nbDln}T0 wM$HOl<@zODQMy1aHpAJyJ(*D-mA=-Am#GTXz&R^qx$^-hDM&V^%eV9rC%T8 zA^2xyYJb;F2W0`JahXdK0fg9b%Kj>@TfMDbO7qXJK6^C~xbqxcWts3}0QW3-K#}pn z_7VKVP=~MPo|XDIfWQO?=arH>EWhYGTiO)luG+33S{Zv7i-5#`eHGZYI6l&C$LpZV z=b)~?KiH_dn0HOgM<@J6Gf*`vGkCpI{`$eEYw$bu@cMReAm$C=WHFWCAWY!2(M!{j zL G;ErvkB(GJ h&M?^>|G-yn z(eqcXo_rp}yMTW@F^unAj8H4X1jN*JF2%i{x5~nA+)%CJ`xGQa;##;{Y6-f9ch;%u z8khCLw1M_wooD(m{i0)@g?79CtetWfeJ0l&;*yJ7Plx>9b?KUAW*~b=;UEC%tNb<) z)OqvHU&cY#8L$|3k8S9ciLfB tSjigt0_F%^Xu7MsF+^eQ5T-QXE@Pa_GLWoTm-=4W7o^b` zdVUVn5j;4X;B5z BSTil>f@ zFci0xz`5R@8c1PZORh{9J0#<@QKl7kerOM^W-bmBx%l>|om$CvIzhf)dkAaoo8Gmb zq>K-rkJ=>dUz?UWa5QWJF34*z0Zq4Z&+4=P4WKUpT*|7oag=Q9@Lv!Tti1U0CiC^e zhrD779B{m2=f`0cMbCrRRcwlkG~LD|Em(dMs8kKXAGs&-`hu`oCD_$yM~@rP>S8iy z{2*kB C5Xm9W|^tDY#L&6^Fpn@_2td)6i?tv1D9ps3)&_-Kx~-yrlK^+{J007Fmnh@cnlw z^24=n-+K?gJ3kZ9`}v*v7aPw8);nABe)(bUV!}M_(~wdnNKF~rc1>8ql545BjMeDK z+1{!0y1*LR6RXPbPLGz(gl@H5wmIQCu^AG_uLKLdHbKPIO{wcuU*CvY2x%p0e67BG zf9S~r`J^HS1J*tXpcMFj4z`>YkXTO {RA2q1#pw_X0w%k_6s1)UmC7J-X#} z 2bUy>o)j=$L|RrchX=1kj~rRy@~ycj>K|u`O)%{3RJ)Pyt3k#Kgf-% zj!F(fhAOMK#thj{87J?X>iHI*HH(l>6$XvLK?*eHe3O^cN4Exeg?aD?3<>;>(B%T; z9kO?rw1ZqY*l~*knYz;+d}B&`xSs)M;0K*nxfDh; u`y!C5PR%J}0Frg<8c zCP`BPZjYMsxL~2ivlTQ|C$^%!8#*Aq5f<;h%rM%SKYr?DxQ!C;i5kFdn$&>I5}FTc z6=HugxVZgdH({5kYR|6JO>~%L=PA}OhPqzX =cWOC@*BZSG926LQ(y=aRW@!!YB_?{UuWe7}#+-`gMi?EQYdUeDWWJ;oeZ z^4#hEM>9u)cWx+fi^HGjXn^WSd0)ad-x~YYP$R+w<%g4I^GUMr;(xB}tMh81mOXWt z3r0FWuajBf(3K(F)}Kox))m+;>C;B$GDufG1Q?O-ME9wP=k2Pv9P;+I>N&H;T?Ag| z =M zgS0^fA%yR|<;O;S+ZcyL$kGr!zg~nVJ*}aNN(~TqYEc4x_D;&c+`3ARC@k^VZ_(Hu zu`quqFlmg?Ja|so$H1EgIEj?fhK=ta uWay~HYIkcEY+OadkgHej;@gkW*2i31j|AE{6BU?QD$|d`8U+E2C7<~mF&;ut> z`4+TP@*W10FwW qX$w)`0%s_!_acmndkr;RrPuw4b~Z`lIpjlApm_uuZ2O z`ZdcWbkA1n@`%D{LWwDF*Q?1z@5Ri-z_eha?&Vtc;rbMl9^8S`;!|&rf;?&Gg~dks zm9tr&o*qO?3(;D6%Kky0l8o@u_vH~*dnf!sB=p_!&ocT9kE#@9Vo>$lN@&`}hL$<) zwWav8R=4`SCT|C)84ol_I o;&T=f~s$MWcf0zcQm>DcT+R;gxp7H;}Yp*vx=#5 zJjvd8)#_Q1xCb^;C4TdhDWNk-E%wAf6RG~@T(WOC({9`;3SVv<)5gP%MTeO2F4z@5 zrZWC6O^U+0(BwPe0f%0tbNs_+=U?v5cH-ZGg!B@w8N3#;NBoV62|D33egPof3EHva zw;Lj=jo=H*LC-?s8T?{`rXLiUa{m#{3;xE}Q2u2mHN}NLU)3yU{Q*G%jT8v70W96U z(!{HbqW|*_Hqx>@SIlxYC`ATa`u47NIPsp)=9A*qKo3*Rn&NKSiVV(~?c2S;LO6k` z17={9hqCr0MF2r$j~-UH3O;8Wx|UGE!NchN#FoT!oM}NrlnS-@JY`)Fe-@fQ;*7er zb%WnV7mI03Kgh3UMr`$1{sqX|GTERJd)ZWC;@HgJT=?96JwTyN*=CDrNi$y>oke@Q z*+ktq(DR%OcLSUbgcF&j!Pe8bm>QN{=L_38b#i%13m+8Bl32&1d`UjJLFMnyX)$m^ zNp5`V1it^2*2gC>MO-zFPGdmLK0dW~)iLW4)}-#a2$_X)Z5ml `}U{)0II%Btm5%AA_ zU 2m5+? `ib9MvQ zLdK8AEmM@MBei@B5jJeo>dON=IJvh0AJ-gE$J)nvj^nM-YUK^IU0eg`Xbw~g#R !0Xe{YYYamv%plSPy57%