private void SetCurrentSpawnPoint(LoadPoint aLoadPoint) { switch (aLoadPoint) { case LoadPoint.AreaMRoom1: CurrentSpawnPoint = AreaMRoom1_SpawnPoint; break; case LoadPoint.AreaMRoom4: CurrentSpawnPoint = AreaMRoom4_SpawnPoint; break; case LoadPoint.Area1Room2: CurrentSpawnPoint = Area1Room2_SpawnPoint; break; case LoadPoint.Area1Room8: CurrentSpawnPoint = Area1Room2_SpawnPoint; break; case LoadPoint.Area1Room15: CurrentSpawnPoint = Area1Room15_SpawnPoint; break; default: break; } }
public static dynamic GetTSObject(LoadPoint dynObject) { if (dynObject is null) { return(null); } return(dynObject.teklaObject); }
public LoadSystem(Vector2 startPoint, Vector2 endPoint, List <Vector2> map) { this.endPoint = new LoadPoint((int)endPoint.x, (int)endPoint.y); LoadPoint.endPoint = this.endPoint; this.startPoint = new LoadPoint((int)startPoint.x, (int)startPoint.y); LoadPoint.startPoint = this.startPoint; this.map = new List <LoadPoint>(); foreach (Vector2 point in map) { this.map.Add(new LoadPoint((int)point.x, (int)point.y)); } }
/// <summary> /// Clears all data in current SaveData. /// </summary> public void ResetSaveData(int in_iSaveDataIndex) { SaveDataIndex = in_iSaveDataIndex; if (DataPools == null) { DataPools = new int[(int)GSaveManager.eDataPoolID.MAX_POOL_IDS]; } for (int i = 0; i < DataPools.Length; i++) { DataPools[i] = 0; } SecurityClearance = -1; CurrentSavePoint = LoadPoint.AreaMRoom1; }
public void TransferPlayer(LoadPoint in_LoadPoint) { switch (in_LoadPoint) { case LoadPoint.AreaMRoom1: activateLevel(0); Player.transform.position = AreaMRoom1_SpawnPoint.transform.position; break; case LoadPoint.AreaMRoom4: activateLevel(0); Player.transform.position = AreaMRoom4_SpawnPoint.transform.position; break; case LoadPoint.AreaMRoom11: activateLevel(0); Player.transform.position = AreaMRoom11_SpawnPoint.transform.position; break; case LoadPoint.Area1Room1: activateLevel(1); Player.transform.position = Area1Room1_SpawnPoint.transform.position; break; case LoadPoint.Area1Room2: activateLevel(1); Player.transform.position = Area1Room2_SpawnPoint.transform.position; break; case LoadPoint.Area1Room8: activateLevel(1); Player.transform.position = Area1Room8_SpawnPoint.transform.position; break; case LoadPoint.Area1Room15: activateLevel(1); Player.transform.position = Area1Room15_SpawnPoint.transform.position; break; default: break; } }
protected override void Start() { _stateInfo = new StateInfo(STATE_NAME, this); base.Start(); StateMachine = StateMachine <eLevels> .Initialize(this); LoadPoint loadPoint = GPlayerManager.Instance.PlayerData.CurrentSavePoint; switch (loadPoint) { case LoadPoint.AreaMRoom1: CurrentSpawnPoint = AreaMRoom1_SpawnPoint; activateLevel(0); break; case LoadPoint.AreaMRoom4: CurrentSpawnPoint = AreaMRoom4_SpawnPoint; activateLevel(0); break; case LoadPoint.Area1Room2: CurrentSpawnPoint = Area1Room2_SpawnPoint; activateLevel(1); break; case LoadPoint.Area1Room8: CurrentSpawnPoint = Area1Room8_SpawnPoint; activateLevel(1); break; case LoadPoint.Area1Room15: CurrentSpawnPoint = Area1Room15_SpawnPoint; activateLevel(1); break; default: break; } SetCurrentSpawnPoint(loadPoint); Player.transform.position = CurrentSpawnPoint.transform.position; }
//两者距离之和 public LoadPoint(int x, int y, LoadPoint parentPoint = null) { this.X = x; this.Y = y; this.ParentPoint = parentPoint; if (parentPoint == null) { this.G = 0; } else { this.G = parentPoint.G + 1; } if (endPoint != null) { this._H = Mathf.Abs(endPoint.X - this.X) + Mathf.Abs(endPoint.Y - this.Y); this._F = this.G + this.H; } }
public List <LoadPoint> FindLoadPath() { openPoints.Add(startPoint); while (openPoints.Count > 0) { //列表排序 openPoints.Sort(delegate(LoadPoint x, LoadPoint y) { return(Comparer <int> .Default.Compare(x.F, y.F)); }); LoadPoint minPoint = openPoints[0]; // H=1 说明查找结束 if (minPoint.H == 1) { List <LoadPoint> path = new List <LoadPoint>(); path.Add(endPoint); endPoint.ParentPoint = minPoint; while (path[path.Count - 1].ParentPoint != null) { path.Add(path[path.Count - 1].ParentPoint); } path.Reverse(); return(path); } //添加到关闭列表 closePoints.Add(minPoint); //从打开别表删除 openPoints.Remove(minPoint); foreach (LoadPoint point in minPoint.SurroundPoints()) { //关闭列表是否存在 关闭列表中已存在 说明已经处理过 不做处理 if (closePoints.Exists(delegate(LoadPoint p) { return(p.X == point.X && p.Y == point.Y); })) { continue; } //判断 是否存在在地图中 不存在不做处理 if (!map.Exists(delegate(LoadPoint mp) { return(mp.X == point.X && mp.Y == point.Y); })) { continue; } //打开列表是否存在 LoadPoint oldPoint = openPoints.Find(delegate(LoadPoint po) { return(po.X == point.X && po.Y == point.Y); }); //存在 则比较两个 的G值 存在的G值大于则 替换 if (oldPoint != null && oldPoint.G > point.G) { oldPoint.ParentPoint = minPoint; } else { openPoints.Add(point); } } } //跳出循环说明查找结束 没有找到路径 return(null); }
public LoadSystem(LoadPoint startPoint, LoadPoint endPoint, List <LoadPoint> map) { this.startPoint = startPoint; this.endPoint = endPoint; this.map = map; }