12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- import { _decorator, Component, Node, LabelComponent } from 'cc';
- import { playerData } from '../../framework/playerData';
- import { util } from '../../framework/util';
- const { ccclass, property } = _decorator;
- @ccclass('Diamond')
- export class Diamond extends Component {
- @property(LabelComponent)
- public lbDiamondNum: LabelComponent = null!;
- private _curDiamondNum: number = 0;
- private _targetDiamondNum: number = 0;
- private _ratio: number = 0;
- private _callback: Function = () => { };
- start() {
- this._refreshDiamond();
- }
- /**
- * 数量累加
- *
- * @param {number} targetDiamondNum 目标总数
- * @param {number} [interval=0.1] 每隔多久执行一次数目累加
- * @param {number} [ratio=0.25] 差值比例
- * @param {Function} [callback=()=>{}] 回调函数
- * @memberof Diamond
- */
- public startRaise(targetDiamondNum: number, interval: number = 0.1, ratio: number = 0.25, callback: Function = () => { }) {
- this._curDiamondNum = 0;
- this._targetDiamondNum = targetDiamondNum;
- this._ratio = ratio;
- this._callback = callback;
- this.schedule(this._numRaise, interval);
- }
- private _numRaise() {
- this._curDiamondNum = util.lerp(this._targetDiamondNum, this._curDiamondNum, this._ratio);
- this.lbDiamondNum.string = util.formatMoney(playerData.instance.playerInfo['diamond'] + Math.ceil(this._curDiamondNum));
- if (Math.ceil(this._curDiamondNum) === this._targetDiamondNum) {
- this.unschedule(this._numRaise);
- this._callback && this._callback();
- }
- }
- private _refreshDiamond() {
- this.lbDiamondNum.string = util.formatMoney(playerData.instance.playerInfo.diamond);
- }
- }
|