public StageClearDataST(string primaryParsedData) { string[] a = primaryParsedData.Split('-'); for (int i = 0; i < a.Length; i++) { switch (i) { case 0: this.stage = (E_STAGE)(int.Parse(a[i])); break; case 1: int isClear = int.Parse(a[i]); if (isClear == 0) { this.clear = false; } else { this.clear = true; } break; case 2: int coins = int.Parse(a[i]); this.coins = coins; break; } } }
public static string GetForSavingParsingString(E_STAGE stageNum, bool isCleared, int coins) { string parse = "-"; string saveParse = ""; string stageStr = ((int)stageNum).ToString(); string clearStr = (isCleared == true) ? "1" : "0"; string coinStr = coins.ToString(); saveParse = stageStr + parse + clearStr + parse + coinStr; return(saveParse); }
public bool IsThisStageFirstPlay(E_STAGE stage) { if (!Directory.Exists(Constants.isThisStageClearDataPath)) { return(true); } if (!File.Exists(Constants.isThisStageClearDataPath + "/" + Constants.isStageClearFileName)) { return(true); } return(IsRecordExists(ReadStageClearFile(), stage)); }
/*** 스테이지 클리어 여부 코인(임시로) * 파싱은 1-Clear,2-notClear 이런식으로 * * / */ public void SaveClearData(E_STAGE stage, bool isCleared, int coins) { bool firstTime = false; string stageSaveString = StageClearDataST.GetForSavingParsingString(stage, isCleared, coins); if (!Directory.Exists(Constants.isThisStageClearDataPath)) { Directory.CreateDirectory(Constants.isThisStageClearDataPath); firstTime = true; } if (!File.Exists(Constants.isThisStageClearDataPath + "/" + Constants.isStageClearFileName)) { File.Create(Constants.isThisStageClearDataPath + "/" + Constants.isStageClearFileName).Dispose();//dispose해줘야함. firstTime = true; } if (firstTime) { StreamWriter sw1 = new StreamWriter(Constants.isThisStageClearDataPath + "/" + Constants.isStageClearFileName); sw1.Write(stageSaveString + ","); sw1.Close(); return; } List <StageClearDataST> sclist = MakeListFromClearDataFile(); string lastSaving = ""; for (int i = 0; i < sclist.Count; i++) { if (sclist[i].stage == stage) { sclist.RemoveAt(i); } } for (int i = 0; i < sclist.Count; i++) { lastSaving += StageClearDataST.GetForSavingParsingString(sclist[i]) + ","; } lastSaving += stageSaveString + ","; FileStream fs = new FileStream(Constants.isThisStageClearDataPath + "/" + Constants.isStageClearFileName, FileMode.Create); StreamWriter sw = new StreamWriter(fs); sw.Write(lastSaving); sw.Close(); fs.Close(); return; }
public bool IsRecordExists(string fileContext, E_STAGE stage) { List <StageClearDataST> sclist = MakeListFromClearDataFile(); for (int i = 0; i < sclist.Count; i++) { if (sclist[i].stage == stage) { return(false); } } return(true); }
public static StageTurnPointSet TurningGen(E_STAGE whatStage, float nowPos, float chunkMarginDiv, ref StageTurnPointSet turnSet) { if (StageST.turningPointQueue.Count == 0) { if (whatStage == E_STAGE.INFINITY) { InfinityFactory.GetInstance().MakeTurnSetQueNode(nowPos, chunkMarginDiv); } else { Debug.Log("맵 턴 큐 비었음."); turnSet.DisableThisSet(); return(turnSet); } } return(StageST.turningPointQueue.Dequeue()); }
public List <GameObject> objs = new List <GameObject>(); //스폰포인트 넘버 상관 없이 오브젝트만 다 관리 //코인 라인도 프리팹 했으니 리스트 말고 배열을 쓰는것도 고려해볼것. public void ObjSpawn(E_STAGE stage) { if (chunk == null) { ErrorManager.SpurtError("청크도 없는데 오브젝트생성하려고 함"); return; } if (objs.Count > 0) { objs.Clear(); } Transform spg = chunk.transform.GetChild(3); //3은 스폰포인트 그룹의 자식 넘버 순서에 상당히 의존한 값이므로 필히 조심! ObjGenerator.ObjGen(stage, spg, ref objs); }
private void Start() { whatStage = StageManager.stageNum; MapAndObjPool.GetInstance().ChunkPoolInit(10); MapAndObjPool.GetInstance().obsBallPoolInit(10); MapAndObjPool.GetInstance().obsHuddlePoolInit(10); MapAndObjPool.GetInstance().obsUpperHuddle_1_PoolInit(10); MapAndObjPool.GetInstance().obsUpperHuddle_2_PoolInit(10); MapAndObjPool.GetInstance().obsUpperHuddle_3_PoolInit(10); MapAndObjPool.GetInstance().obsFirePoolInit(10); MapAndObjPool.GetInstance().itemHPPlusPoolInit(10); MapAndObjPool.GetInstance().itemInvinciblePoolInit(10); MapAndObjPool.GetInstance().itemShieldPoolInit(10); MapAndObjPool.GetInstance().itemCoinPoolInit(10); MapAndObjPool.GetInstance().itemMagnetPoolInit(10); MapAndObjPool.GetInstance().itemCoin_Parabola_PoolInit(10); MapAndObjPool.GetInstance().itemCoin_StraightLine_PoolInit(10); StartCoroutine(checkPos()); //부하를 줄이기 위해 0.2초 단위로 체크 }
public StageClearDataST GetClearDataOfThisStage(E_STAGE stage) { if (!Directory.Exists(Constants.isThisStageClearDataPath)) { return(null); } if (!File.Exists(Constants.isThisStageClearDataPath + "/" + Constants.isStageClearFileName)) { return(null); } List <StageClearDataST> sclist = MakeListFromClearDataFile(); for (int i = 0; i < sclist.Count; i++) { if (sclist[i].stage == stage) { return(sclist[i]); } } return(null); }
public static void ObjGen(E_STAGE whatStage, Transform spawnPointGroup, ref List <GameObject> objs) { if (objs == null || spawnPointGroup == null) { return; } if (StageST.objQueue.Count == 0) { if (whatStage == E_STAGE.INFINITY) { InfinityFactory.GetInstance().MakeObjQueNode(); } else { return; } } StageObjArr soa = StageST.objQueue.Dequeue(); FixedObjGenerator.FixedObjGen(spawnPointGroup, soa.spawnObjType, ref objs); }