| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155 |
- (function() {
- var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
- var __module = nodeEnv ? module : {exports:{}};
- var __filename = 'preview-scripts/assets/script/mk/system/TimerSystem.js';
- var __require = nodeEnv ? function (request) {
- return cc.require(request);
- } : function (request) {
- return __quick_compile_project__.require(request, __filename);
- };
- function __define (exports, require, module) {
- if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
- cc._RF.push(module, '70a463CEglFy49OGQWrGdoc', 'TimerSystem');
- // script/mk/system/TimerSystem.ts
- "use strict";
- var __extends = (this && this.__extends) || (function () {
- var extendStatics = function (d, b) {
- extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
- return extendStatics(d, b);
- };
- return function (d, b) {
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
- })();
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.Timer = void 0;
- /**
- * 计时器管理类
- * @description
- * @author 冯聪
- */
- var TimerSystem = /** @class */ (function (_super) {
- __extends(TimerSystem, _super);
- function TimerSystem() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
- /** 计数器数组 */
- _this.timerArr = [];
- return _this;
- }
- /** 开启游戏计时器 */
- TimerSystem.prototype.startTimer = function () {
- var _this = this;
- this.schedule(function () {
- _this.runTimer();
- }, 1);
- };
- /** 运行游戏计时器 */
- TimerSystem.prototype.runTimer = function () {
- for (var i = 0; i < this.timerArr.length; i++) {
- var gameTimer = this.timerArr[i];
- var callBack = gameTimer.callBack;
- var target = gameTimer.target;
- gameTimer.curTime--;
- if (gameTimer.curTime <= 0) {
- gameTimer.curTime = gameTimer.totalTime;
- callBack.call(target);
- }
- }
- };
- /**
- * 添加游戏计时器
- * @description
- * @param time 计时的时间
- * @param callBack 计时结束之后的回调
- * @param target 计时绑定的脚本对象
- */
- TimerSystem.prototype.addTimer = function (time, callBack, target) {
- if (!this.ifHasSameTimer(callBack, target)) {
- var gameTimer = new Timer();
- gameTimer.curTime = time;
- gameTimer.totalTime = time;
- gameTimer.callBack = callBack;
- gameTimer.target = target;
- this.timerArr.push(gameTimer);
- }
- };
- /**
- * 是否有相同的时间管理器
- * @param callBack 回调方法
- * @param target 绑定的对象
- */
- TimerSystem.prototype.ifHasSameTimer = function (callBack, target) {
- if (this.getTimer(callBack, target)) {
- //重复添加时间计时器
- return true;
- }
- else {
- return false;
- }
- };
- /**
- * 获取时间管理器
- * @param callBack 回调方法
- * @param target 绑定的对象
- */
- TimerSystem.prototype.getTimer = function (callBack, target) {
- for (var i = this.timerArr.length - 1; i >= 0; i--) {
- var gameTimer = this.timerArr[i];
- if (gameTimer.callBack == callBack && gameTimer.target == target) {
- return gameTimer;
- }
- }
- return null;
- };
- /**
- * 移除时间管理器
- * @param callBack 回调方法
- * @param target 绑定的对象
- */
- TimerSystem.prototype.removeTimer = function (callBack, target) {
- for (var i = this.timerArr.length - 1; i >= 0; i--) {
- var timer = this.timerArr[i];
- if (timer.callBack == callBack && timer.target == target) {
- this.timerArr.splice(i, 1);
- //gameTimer = null; //要不要加null 看最后的效果
- return;
- }
- }
- };
- return TimerSystem;
- }(cc.Component));
- exports.default = TimerSystem;
- /** 游戏计时器类 */
- var Timer = /** @class */ (function () {
- function Timer() {
- /** 当前计时时间 */
- this.curTime = 0;
- /** 计时总时间 */
- this.totalTime = 0;
- /** 计时的回调 */
- this.callBack = null;
- /** 绑定的脚本对象 */
- this.target = null;
- }
- return Timer;
- }());
- exports.Timer = Timer;
- cc._RF.pop();
- }
- if (nodeEnv) {
- __define(__module.exports, __require, __module);
- }
- else {
- __quick_compile_project__.registerModuleFunc(__filename, function () {
- __define(__module.exports, __require, __module);
- });
- }
- })();
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcc2NyaXB0XFxta1xcc3lzdGVtXFxUaW1lclN5c3RlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0E7Ozs7R0FJRztBQUNIO0lBQXlDLCtCQUFZO0lBQXJEO1FBQUEscUVBeUZDO1FBdkZHLFlBQVk7UUFDSixjQUFRLEdBQVksRUFBRSxDQUFDOztJQXNGbkMsQ0FBQztJQXBGRyxjQUFjO0lBQ1AsZ0NBQVUsR0FBakI7UUFBQSxpQkFJQztRQUhHLElBQUksQ0FBQyxRQUFRLENBQUM7WUFDVixLQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDcEIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ1YsQ0FBQztJQUVELGNBQWM7SUFDTiw4QkFBUSxHQUFoQjtRQUNJLEtBQUssSUFBSSxDQUFDLEdBQVcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNuRCxJQUFJLFNBQVMsR0FBVSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3hDLElBQUksUUFBUSxHQUFhLFNBQVMsQ0FBQyxRQUFRLENBQUM7WUFDNUMsSUFBSSxNQUFNLEdBQVEsU0FBUyxDQUFDLE1BQU0sQ0FBQztZQUNuQyxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDcEIsSUFBSSxTQUFTLENBQUMsT0FBTyxJQUFJLENBQUMsRUFBRTtnQkFDeEIsU0FBUyxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDO2dCQUN4QyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQ3pCO1NBQ0o7SUFDTCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksOEJBQVEsR0FBZixVQUFnQixJQUFZLEVBQUUsUUFBa0IsRUFBRSxNQUFXO1FBQ3pELElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsRUFBRTtZQUN4QyxJQUFJLFNBQVMsR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQzVCLFNBQVMsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1lBQ3pCLFNBQVMsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1lBQzNCLFNBQVMsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1lBQzlCLFNBQVMsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1lBQzFCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQ2pDO0lBQ0wsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxvQ0FBYyxHQUF0QixVQUF1QixRQUFrQixFQUFFLE1BQVc7UUFDbEQsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsRUFBRTtZQUNqQyxXQUFXO1lBQ1gsT0FBTyxJQUFJLENBQUM7U0FDZjthQUNJO1lBQ0QsT0FBTyxLQUFLLENBQUM7U0FDaEI7SUFDTCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLDhCQUFRLEdBQWhCLFVBQWlCLFFBQWtCLEVBQUUsTUFBVztRQUM1QyxLQUFLLElBQUksQ0FBQyxHQUFXLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3hELElBQUksU0FBUyxHQUFVLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDeEMsSUFBSSxTQUFTLENBQUMsUUFBUSxJQUFJLFFBQVEsSUFBSSxTQUFTLENBQUMsTUFBTSxJQUFJLE1BQU0sRUFBRTtnQkFDOUQsT0FBTyxTQUFTLENBQUM7YUFDcEI7U0FDSjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksaUNBQVcsR0FBbEIsVUFBbUIsUUFBa0IsRUFBRSxNQUFXO1FBQzlDLEtBQUssSUFBSSxDQUFDLEdBQVcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDeEQsSUFBSSxLQUFLLEdBQVUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNwQyxJQUFJLEtBQUssQ0FBQyxRQUFRLElBQUksUUFBUSxJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksTUFBTSxFQUFFO2dCQUN0RCxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7Z0JBQzFCLHFDQUFxQztnQkFDckMsT0FBTzthQUNWO1NBQ0o7SUFDTCxDQUFDO0lBQ0wsa0JBQUM7QUFBRCxDQXpGQSxBQXlGQyxDQXpGd0MsRUFBRSxDQUFDLFNBQVMsR0F5RnBEOztBQUVELGFBQWE7QUFDYjtJQUFBO1FBQ0ksYUFBYTtRQUNiLFlBQU8sR0FBVyxDQUFDLENBQUM7UUFDcEIsWUFBWTtRQUNaLGNBQVMsR0FBVyxDQUFDLENBQUM7UUFDdEIsWUFBWTtRQUNaLGFBQVEsR0FBYSxJQUFJLENBQUM7UUFDMUIsY0FBYztRQUNkLFdBQU0sR0FBUSxJQUFJLENBQUM7SUFDdkIsQ0FBQztJQUFELFlBQUM7QUFBRCxDQVRBLEFBU0MsSUFBQTtBQVRZLHNCQUFLIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbi8qKlxyXG4gKiDorqHml7blmajnrqHnkIbnsbsgXHJcbiAqIEBkZXNjcmlwdGlvblxyXG4gKiBAYXV0aG9yIOWGr+iBqiBcclxuICovXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFRpbWVyU3lzdGVtIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuXHJcbiAgICAvKiog6K6h5pWw5Zmo5pWw57uEICovXHJcbiAgICBwcml2YXRlIHRpbWVyQXJyOiBUaW1lcltdID0gW107XHJcblxyXG4gICAgLyoqIOW8gOWQr+a4uOaIj+iuoeaXtuWZqCAqL1xyXG4gICAgcHVibGljIHN0YXJ0VGltZXIoKSB7XHJcbiAgICAgICAgdGhpcy5zY2hlZHVsZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMucnVuVGltZXIoKTtcclxuICAgICAgICB9LCAxKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiog6L+Q6KGM5ri45oiP6K6h5pe25ZmoICovXHJcbiAgICBwcml2YXRlIHJ1blRpbWVyKCkge1xyXG4gICAgICAgIGZvciAodmFyIGk6IG51bWJlciA9IDA7IGkgPCB0aGlzLnRpbWVyQXJyLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIHZhciBnYW1lVGltZXI6IFRpbWVyID0gdGhpcy50aW1lckFycltpXTtcclxuICAgICAgICAgICAgdmFyIGNhbGxCYWNrOiBGdW5jdGlvbiA9IGdhbWVUaW1lci5jYWxsQmFjaztcclxuICAgICAgICAgICAgdmFyIHRhcmdldDogYW55ID0gZ2FtZVRpbWVyLnRhcmdldDtcclxuICAgICAgICAgICAgZ2FtZVRpbWVyLmN1clRpbWUtLTtcclxuICAgICAgICAgICAgaWYgKGdhbWVUaW1lci5jdXJUaW1lIDw9IDApIHtcclxuICAgICAgICAgICAgICAgIGdhbWVUaW1lci5jdXJUaW1lID0gZ2FtZVRpbWVyLnRvdGFsVGltZTtcclxuICAgICAgICAgICAgICAgIGNhbGxCYWNrLmNhbGwodGFyZ2V0KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOa3u+WKoOa4uOaIj+iuoeaXtuWZqFxyXG4gICAgICogQGRlc2NyaXB0aW9uXHJcbiAgICAgKiBAcGFyYW0gdGltZSAgICAg6K6h5pe255qE5pe26Ze0XHJcbiAgICAgKiBAcGFyYW0gY2FsbEJhY2sg6K6h5pe257uT5p2f5LmL5ZCO55qE5Zue6LCDXHJcbiAgICAgKiBAcGFyYW0gdGFyZ2V0ICAg6K6h5pe257uR5a6a55qE6ISa5pys5a+56LGhXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBhZGRUaW1lcih0aW1lOiBudW1iZXIsIGNhbGxCYWNrOiBGdW5jdGlvbiwgdGFyZ2V0OiBhbnkpIHtcclxuICAgICAgICBpZiAoIXRoaXMuaWZIYXNTYW1lVGltZXIoY2FsbEJhY2ssIHRhcmdldCkpIHtcclxuICAgICAgICAgICAgbGV0IGdhbWVUaW1lciA9IG5ldyBUaW1lcigpO1xyXG4gICAgICAgICAgICBnYW1lVGltZXIuY3VyVGltZSA9IHRpbWU7XHJcbiAgICAgICAgICAgIGdhbWVUaW1lci50b3RhbFRpbWUgPSB0aW1lO1xyXG4gICAgICAgICAgICBnYW1lVGltZXIuY2FsbEJhY2sgPSBjYWxsQmFjaztcclxuICAgICAgICAgICAgZ2FtZVRpbWVyLnRhcmdldCA9IHRhcmdldDtcclxuICAgICAgICAgICAgdGhpcy50aW1lckFyci5wdXNoKGdhbWVUaW1lcik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICog5piv5ZCm5pyJ55u45ZCM55qE5pe26Ze0566h55CG5ZmoXHJcbiAgICAgKiBAcGFyYW0gY2FsbEJhY2sg5Zue6LCD5pa55rOVXHJcbiAgICAgKiBAcGFyYW0gdGFyZ2V0ICAg57uR5a6a55qE5a+56LGhXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgaWZIYXNTYW1lVGltZXIoY2FsbEJhY2s6IEZ1bmN0aW9uLCB0YXJnZXQ6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICh0aGlzLmdldFRpbWVyKGNhbGxCYWNrLCB0YXJnZXQpKSB7XHJcbiAgICAgICAgICAgIC8v6YeN5aSN5re75Yqg5pe26Ze06K6h5pe25ZmoXHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKiogXHJcbiAgICAgKiDojrflj5bml7bpl7TnrqHnkIblmahcclxuICAgICAqIEBwYXJhbSBjYWxsQmFjayDlm57osIPmlrnms5VcclxuICAgICAqIEBwYXJhbSB0YXJnZXQgICDnu5HlrprnmoTlr7nosaFcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBnZXRUaW1lcihjYWxsQmFjazogRnVuY3Rpb24sIHRhcmdldDogYW55KTogVGltZXIge1xyXG4gICAgICAgIGZvciAodmFyIGk6IG51bWJlciA9IHRoaXMudGltZXJBcnIubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcclxuICAgICAgICAgICAgbGV0IGdhbWVUaW1lcjogVGltZXIgPSB0aGlzLnRpbWVyQXJyW2ldO1xyXG4gICAgICAgICAgICBpZiAoZ2FtZVRpbWVyLmNhbGxCYWNrID09IGNhbGxCYWNrICYmIGdhbWVUaW1lci50YXJnZXQgPT0gdGFyZ2V0KSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZ2FtZVRpbWVyO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICog56e76Zmk5pe26Ze0566h55CG5ZmoXHJcbiAgICAgKiBAcGFyYW0gY2FsbEJhY2sg5Zue6LCD5pa55rOVXHJcbiAgICAgKiBAcGFyYW0gdGFyZ2V0ICAg57uR5a6a55qE5a+56LGhXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyByZW1vdmVUaW1lcihjYWxsQmFjazogRnVuY3Rpb24sIHRhcmdldDogYW55KSB7XHJcbiAgICAgICAgZm9yICh2YXIgaTogbnVtYmVyID0gdGhpcy50aW1lckFyci5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xyXG4gICAgICAgICAgICBsZXQgdGltZXI6IFRpbWVyID0gdGhpcy50aW1lckFycltpXTtcclxuICAgICAgICAgICAgaWYgKHRpbWVyLmNhbGxCYWNrID09IGNhbGxCYWNrICYmIHRpbWVyLnRhcmdldCA9PSB0YXJnZXQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudGltZXJBcnIuc3BsaWNlKGksIDEpXHJcbiAgICAgICAgICAgICAgICAvL2dhbWVUaW1lciA9IG51bGw7IC8v6KaB5LiN6KaB5YqgbnVsbCDnnIvmnIDlkI7nmoTmlYjmnpxcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLyoqIOa4uOaIj+iuoeaXtuWZqOexuyAqL1xyXG5leHBvcnQgY2xhc3MgVGltZXIge1xyXG4gICAgLyoqIOW9k+WJjeiuoeaXtuaXtumXtCAqL1xyXG4gICAgY3VyVGltZTogbnVtYmVyID0gMDtcclxuICAgIC8qKiDorqHml7bmgLvml7bpl7QgKi9cclxuICAgIHRvdGFsVGltZTogbnVtYmVyID0gMDtcclxuICAgIC8qKiDorqHml7bnmoTlm57osIMgKi9cclxuICAgIGNhbGxCYWNrOiBGdW5jdGlvbiA9IG51bGw7XHJcbiAgICAvKiog57uR5a6a55qE6ISa5pys5a+56LGhICovXHJcbiAgICB0YXJnZXQ6IGFueSA9IG51bGw7XHJcbn1cclxuIl19
|