import { tMgr } from "../../../Global"; import { GamePlayTable, TableName } from "../../table/TableDefine"; import { ObjType } from "../BattleConst"; import { IUpdate } from "../inter/IUpdate"; import { MapData } from "./MapData"; import { ObjData } from "./ObjData"; export class RotaterObj extends ObjData implements IUpdate { private _angle: number = 0; get angle(): number { return this._angle; } private _angleSpeed: number = 0; //#region interface onUpdate(dt: number) { // throw new Error("Method not implemented."); this._angle += (this._angleSpeed * dt); this._angle = this._angle % 360; // this._speedVec.x = 0; // this._speedVec.y = (tMgr.getConfig(TableName.GAME_PLAY, 3) as GamePlayTable).Value; // this._speedVec.rotateSelf(slib.MathUtil.getRadianByDegree(this._angle)); } //#endregion //#region life cycle init(map: MapData, type: ObjType, gridX: number, gridY: number): void { super.init(map, type, gridX, gridY); this._angleSpeed = (tMgr.getConfig(TableName.GAME_PLAY, 12) as GamePlayTable).Value; this._imgName = 'UI_yxz_tsfk_xzg'; this.canSlide = false; } onBattleStart(): void { super.onBattleStart(); this.map.battle && this.map.battle.regUpdateObj(this); //预览模式下, map.battle为空 } onDead(): void { super.onDead(); this.map.battle && this.map.battle.unregUpdateObj(this); } clone(): RotaterObj { return this.cloneValue(new RotaterObj()); } protected cloneValue(target: RotaterObj): RotaterObj { super.cloneValue(target); target._angleSpeed = this._angleSpeed; return target; } //#endregion }