(function() { var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; var __module = nodeEnv ? module : {exports:{}}; var __filename = 'preview-scripts/assets/Script/tool/Shake.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, '61affD5SO9Ipo0fGmIeTFTZ', 'Shake'); // Script/tool/Shake.js "use strict"; /** * 自定义抖动效果 */ var Shake = cc.Class({ "extends": cc.Component, properties: { //抖动时间 duration: 0, //X轴抖动范围 shakeX: 0, shakeY: 0 }, shake: function shake(callback) { if (this.shaking) { return; } this.callback = callback; this.shaking = true; this.dtCost = 0; this.nodeInitialPos = this.node.getPosition(); this.unschedule(this.doSchedule); this.schedule(this.doSchedule, 0, cc.macro.REPEAT_FOREVER, 0); }, doSchedule: function doSchedule(dt) { var dt2 = dt * 50; var randX = this.getRandomStrength(-this.shakeX, this.shakeX) * dt2; var randY = this.getRandomStrength(-this.shakeY, this.shakeY) * dt2; this.node.setPosition(cc.pAdd(this.nodeInitialPos, cc.v2(randX, randY))); this.dtCost += dt; if (this.dtCost >= this.duration) { this.unschedule(this.doSchedule); this.node.setPosition(this.nodeInitialPos); this.shaking = false; if (this.callback) { this.callback(); } } }, //获取两个数间的随机值 getRandomStrength: function getRandomStrength(min, max) { return Math.random() * (max - min + 1) + min; } }); 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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFx0b29sXFxTaGFrZS5qcyJdLCJuYW1lcyI6WyJTaGFrZSIsImNjIiwiQ2xhc3MiLCJDb21wb25lbnQiLCJwcm9wZXJ0aWVzIiwiZHVyYXRpb24iLCJzaGFrZVgiLCJzaGFrZVkiLCJzaGFrZSIsImNhbGxiYWNrIiwic2hha2luZyIsImR0Q29zdCIsIm5vZGVJbml0aWFsUG9zIiwibm9kZSIsImdldFBvc2l0aW9uIiwidW5zY2hlZHVsZSIsImRvU2NoZWR1bGUiLCJzY2hlZHVsZSIsIm1hY3JvIiwiUkVQRUFUX0ZPUkVWRVIiLCJkdCIsImR0MiIsInJhbmRYIiwiZ2V0UmFuZG9tU3RyZW5ndGgiLCJyYW5kWSIsInNldFBvc2l0aW9uIiwicEFkZCIsInYyIiwibWluIiwibWF4IiwiTWF0aCIsInJhbmRvbSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQSxJQUFJQSxLQUFLLEdBQUdDLEVBQUUsQ0FBQ0MsS0FBSCxDQUFTO0FBQ2pCLGFBQVNELEVBQUUsQ0FBQ0UsU0FESztBQUdqQkMsRUFBQUEsVUFBVSxFQUFFO0FBQ1I7QUFDQUMsSUFBQUEsUUFBUSxFQUFFLENBRkY7QUFHUjtBQUNBQyxJQUFBQSxNQUFNLEVBQUUsQ0FKQTtBQUtSQyxJQUFBQSxNQUFNLEVBQUU7QUFMQSxHQUhLO0FBV2pCQyxFQUFBQSxLQUFLLEVBQUUsZUFBVUMsUUFBVixFQUFvQjtBQUN2QixRQUFHLEtBQUtDLE9BQVIsRUFBZ0I7QUFDWjtBQUNIOztBQUNELFNBQUtELFFBQUwsR0FBZ0JBLFFBQWhCO0FBQ0EsU0FBS0MsT0FBTCxHQUFlLElBQWY7QUFDQSxTQUFLQyxNQUFMLEdBQWMsQ0FBZDtBQUNBLFNBQUtDLGNBQUwsR0FBc0IsS0FBS0MsSUFBTCxDQUFVQyxXQUFWLEVBQXRCO0FBQ0EsU0FBS0MsVUFBTCxDQUFnQixLQUFLQyxVQUFyQjtBQUNBLFNBQUtDLFFBQUwsQ0FBYyxLQUFLRCxVQUFuQixFQUErQixDQUEvQixFQUFrQ2YsRUFBRSxDQUFDaUIsS0FBSCxDQUFTQyxjQUEzQyxFQUEyRCxDQUEzRDtBQUNILEdBckJnQjtBQXNCakJILEVBQUFBLFVBQVUsRUFBRSxvQkFBVUksRUFBVixFQUFjO0FBQ3RCLFFBQUlDLEdBQUcsR0FBR0QsRUFBRSxHQUFHLEVBQWY7QUFDQSxRQUFJRSxLQUFLLEdBQUcsS0FBS0MsaUJBQUwsQ0FBdUIsQ0FBQyxLQUFLakIsTUFBN0IsRUFBcUMsS0FBS0EsTUFBMUMsSUFBb0RlLEdBQWhFO0FBQ0EsUUFBSUcsS0FBSyxHQUFHLEtBQUtELGlCQUFMLENBQXVCLENBQUMsS0FBS2hCLE1BQTdCLEVBQXFDLEtBQUtBLE1BQTFDLElBQW9EYyxHQUFoRTtBQUNBLFNBQUtSLElBQUwsQ0FBVVksV0FBVixDQUFzQnhCLEVBQUUsQ0FBQ3lCLElBQUgsQ0FBUSxLQUFLZCxjQUFiLEVBQTZCWCxFQUFFLENBQUMwQixFQUFILENBQU1MLEtBQU4sRUFBYUUsS0FBYixDQUE3QixDQUF0QjtBQUNBLFNBQUtiLE1BQUwsSUFBZVMsRUFBZjs7QUFDQSxRQUFJLEtBQUtULE1BQUwsSUFBZSxLQUFLTixRQUF4QixFQUFrQztBQUM5QixXQUFLVSxVQUFMLENBQWdCLEtBQUtDLFVBQXJCO0FBQ0EsV0FBS0gsSUFBTCxDQUFVWSxXQUFWLENBQXNCLEtBQUtiLGNBQTNCO0FBQ0EsV0FBS0YsT0FBTCxHQUFlLEtBQWY7O0FBQ0EsVUFBRyxLQUFLRCxRQUFSLEVBQWlCO0FBQ2IsYUFBS0EsUUFBTDtBQUNIO0FBQ0o7QUFDSixHQXBDZ0I7QUFxQ2pCO0FBQ0FjLEVBQUFBLGlCQUFpQixFQUFFLDJCQUFVSyxHQUFWLEVBQWVDLEdBQWYsRUFBb0I7QUFDbkMsV0FBT0MsSUFBSSxDQUFDQyxNQUFMLE1BQWlCRixHQUFHLEdBQUdELEdBQU4sR0FBWSxDQUE3QixJQUFrQ0EsR0FBekM7QUFDSDtBQXhDZ0IsQ0FBVCxDQUFaIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICog6Ieq5a6a5LmJ5oqW5Yqo5pWI5p6cXHJcbiAqL1xyXG52YXIgU2hha2UgPSBjYy5DbGFzcyh7XHJcbiAgICBleHRlbmRzOiBjYy5Db21wb25lbnQsXHJcblxyXG4gICAgcHJvcGVydGllczoge1xyXG4gICAgICAgIC8v5oqW5Yqo5pe26Ze0XHJcbiAgICAgICAgZHVyYXRpb246IDAsXHJcbiAgICAgICAgLy9Y6L205oqW5Yqo6IyD5Zu0XHJcbiAgICAgICAgc2hha2VYOiAwLFxyXG4gICAgICAgIHNoYWtlWTogMCxcclxuICAgIH0sXHJcblxyXG4gICAgc2hha2U6IGZ1bmN0aW9uIChjYWxsYmFjaykge1xyXG4gICAgICAgIGlmKHRoaXMuc2hha2luZyl7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5jYWxsYmFjayA9IGNhbGxiYWNrO1xyXG4gICAgICAgIHRoaXMuc2hha2luZyA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5kdENvc3QgPSAwO1xyXG4gICAgICAgIHRoaXMubm9kZUluaXRpYWxQb3MgPSB0aGlzLm5vZGUuZ2V0UG9zaXRpb24oKTtcclxuICAgICAgICB0aGlzLnVuc2NoZWR1bGUodGhpcy5kb1NjaGVkdWxlKTtcclxuICAgICAgICB0aGlzLnNjaGVkdWxlKHRoaXMuZG9TY2hlZHVsZSwgMCwgY2MubWFjcm8uUkVQRUFUX0ZPUkVWRVIsIDApO1xyXG4gICAgfSxcclxuICAgIGRvU2NoZWR1bGU6IGZ1bmN0aW9uIChkdCkge1xyXG4gICAgICAgIHZhciBkdDIgPSBkdCAqIDUwO1xyXG4gICAgICAgIHZhciByYW5kWCA9IHRoaXMuZ2V0UmFuZG9tU3RyZW5ndGgoLXRoaXMuc2hha2VYLCB0aGlzLnNoYWtlWCkgKiBkdDI7XHJcbiAgICAgICAgdmFyIHJhbmRZID0gdGhpcy5nZXRSYW5kb21TdHJlbmd0aCgtdGhpcy5zaGFrZVksIHRoaXMuc2hha2VZKSAqIGR0MjtcclxuICAgICAgICB0aGlzLm5vZGUuc2V0UG9zaXRpb24oY2MucEFkZCh0aGlzLm5vZGVJbml0aWFsUG9zLCBjYy52MihyYW5kWCwgcmFuZFkpKSk7XHJcbiAgICAgICAgdGhpcy5kdENvc3QgKz0gZHQ7XHJcbiAgICAgICAgaWYgKHRoaXMuZHRDb3N0ID49IHRoaXMuZHVyYXRpb24pIHtcclxuICAgICAgICAgICAgdGhpcy51bnNjaGVkdWxlKHRoaXMuZG9TY2hlZHVsZSk7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5zZXRQb3NpdGlvbih0aGlzLm5vZGVJbml0aWFsUG9zKTtcclxuICAgICAgICAgICAgdGhpcy5zaGFraW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGlmKHRoaXMuY2FsbGJhY2spe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jYWxsYmFjaygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuICAgIC8v6I635Y+W5Lik5Liq5pWw6Ze055qE6ZqP5py65YC8XHJcbiAgICBnZXRSYW5kb21TdHJlbmd0aDogZnVuY3Rpb24gKG1pbiwgbWF4KSB7XHJcbiAgICAgICAgcmV0dXJuIE1hdGgucmFuZG9tKCkgKiAobWF4IC0gbWluICsgMSkgKyBtaW47XHJcbiAgICB9LFxyXG59KTtcclxuIl19