Sun_moves/temp/quick-scripts/dst/assets/Script/tool/Shake.js
2024-05-28 11:38:16 +08:00

76 lines
6.7 KiB
JavaScript

(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