import { Vec2, Vec3 } from "cc"; import { _DesktopspeedConfig } from "../_config/_DesktopspeedConfig"; import BaseConfigProxy from "../Base/BaseConfigProxy"; import ConfigT from "../Base/ConfigT"; import InstanceT from "../../ExUtils/InstanceT"; @InstanceT.DecorateInstance() @ConfigT.DecorateConfigProxy(_DesktopspeedConfig) export class DesktopspeedProxy extends BaseConfigProxy<_DesktopspeedConfig.DataType>{ /** 单例 */ public static readonly instance: DesktopspeedProxy; dic_speed: Map = new Map(); public readonly Logic2RenderScale: number = 0.0001; protected initLogic(){ this.InitSpeedInfo(); } GetDesktopspeedData(): string[] { let Dir: string[] = []; this.dataList.forEach((Item) => { Dir.push(Item.DIrString); }); return Dir; } InitSpeedInfo():void { let dir; let lineArray: string[] = this.GetDesktopspeedData(); for (let i = 0; i < lineArray.length; i++) { let LineString = lineArray[i]; if (LineString != "") { let date: Vec2 = new Vec2(); let line = LineString.split(','); dir = parseInt(line[0]); date.x = parseInt(line[1]); date.y = parseInt(line[2]); this.dic_speed[dir] = date; } } } public GetSpeed(_dir: number):Vec2 { return this.dic_speed[_dir]; } public Logic2Render(_value: number): number { return _value * this.Logic2RenderScale; } public ChangeGameVectorToVector3(_vec2: Vec2, _y: number = 0): Vec3 { return new Vec3(this.Logic2Render(Math.floor(_vec2.x)), _y, this.Logic2Render(Math.floor(_vec2.y))); } public getDir(_dir:number,out?:Vec3):Vec3{ if(!out){ out =new Vec3(); } let tempPos = this.GetSpeed(_dir*3) out.x = tempPos.x; out.y = tempPos.y; return out } }