public void run() { //------------------------------------ // 스타트 -> 인게임 -> 계속할지물어봄 //----------------------------------- while (Scene != SceneValue.End) { switch (Scene) { case SceneValue.Start: start.run(); Scene = SceneValue.InGame; break; case SceneValue.InGame: Scene = gameManager.Run(Scene); break; case SceneValue.EndMessage: Scene = end.Run(Scene); break; default: break; } } EndMessage(); }
public static SceneValue Scene; //현재 씬값 public SceneManager() { Scene = new SceneValue(); Scene = SceneValue.Start; start = new SceneStart(); gameManager = new GameManager(); end = new Sceneend(); }
public void RunScene() { Question1.SetActive(false); Question2.SetActive(false); Question3.SetActive(false); Question4.SetActive(false); Question5.SetActive(false); if (!allScenesPlayed()) { sceneIndex = randomizeNextScene(); StartCoroutine(LoadAsynchronously(sceneIndex)); } else { SceneValue.CreateText(); Question0.SetActive(true); } }
public SceneValue Run(SceneValue a_SceneValue) { //----------------------------------------------- // 게임을 계속 할지 물어보는 부분 //----------------------------------------------- Debug.Assert(a_SceneValue == SceneValue.EndMessage); Console.Clear(); Console.WriteLine("다시하시려면 Y키 끝낼려면 N키"); switch (Console.ReadKey().Key) { case ConsoleKey.Y: a_SceneValue = SceneValue.Start; return(a_SceneValue); case ConsoleKey.N: a_SceneValue = SceneValue.End; return(a_SceneValue); default: return(a_SceneValue); } }
public SceneValue Run(SceneValue a_scene) { //-------------------------------------- // 메인 루프 부분 // 1. 사용자가 키입력을 안해도 업데이트 // 2. 틱으로 고객의 인내심이 줄어들게함 // define.GetTargetFPSTicks() ->> 수정시 pc마다 깜빡임줄어듬 //--------------------------------------- Debug.Assert(a_scene == SceneValue.InGame); // 예외처리 DateTime old = DateTime.Now; long ticks = 0; long phaseTicks = 0; // 다들아시는 틱. long TargetTicks = (long)define.GetTargetFPSTicks(); float targetTicksphase = 0.5f; // 페이즈 조절용 틱초기값 player.Money = 0; // 재게임시 초기화 customor.RandomOrder(); // 처음 오더 세팅 지우면 게임 안돌아감 while (true) { //--------------------------------------------- // 메인 루프 // 버거 판별 , 게임 오버룰도 담당 // 하단은 다들 아시는 그 틱 //--------------------------------------------- long temp = (DateTime.Now - old).Ticks; // 여기도 틱 old = DateTime.Now; phaseTicks += temp; // 페이즈틱 ticks += temp; if (ticks > TargetTicks) // 30프레임당 1번 랜더 { Input(); gameRander.FixRender(); // 메인랜더링 ticks -= TargetTicks; } //----------------------------- // 페이즈 구현 부분 // 페이즈 2 = 400원 이상 // 페이즈 3 = 600원 이상 // 페이즈 4 = 900원 이상 //----------------------------- if (phaseTicks > 1000 * 10000 * targetTicksphase) // 페이즈 업데이트 부분 { CheckPatience(); gameRander.TickRender(); // 페이즈 틱당 랜더링 phaseTicks = 0; } if (player.Money > 300) // 매직넘버 바꿀까 했는데 가독성이 이게 좋다는 평이 많아 놔둠 { targetTicksphase = 0.2f; } if (player.Money > 500) { targetTicksphase = 0.1f; } if (player.Money > 800) { targetTicksphase = 0.05f; } if (player.Mental <= 0) // 게임오버 해주는 부분 { a_scene = SceneValue.EndMessage; player.Mental = 4; return(a_scene); } } }